¿Podemos tener múltiples nombres de alias para una sola tabla?Nombres de Alias Múltiples para una tabla
Respuesta
Sí. Es necesario hacer esto para un self join, por ejemplo, f tiene una tabla que almacena una jerarquía:
create table Foo (
FooID int
,ParentFooID int
,[columns]
)
Usted puede hacer una combinación para obtener los hijos de padres que satisfacen una condición particular con una consulta como:
Select b.*
from Foo a
join Foo b
on a.FooID = b.ParentFooID
and [some condition filtering a]
+1 para poderes de inferencia! –
Pero afectará el rendimiento o no? –
El optimizador de consultas tendrá que hacer lo que sea necesario para resolver el predicado de unión. Por ejemplo, si la tabla es grande y tiene un índice en ParentFooID, probablemente tendrá que hacer búsquedas de índice para resolver la unión FooID - ParentFooID. Hacer el partido siempre implicará algunos recursos. – ConcernedOfTunbridgeWells
No, no en la misma tabla, pero puede seleccionar la misma tabla dos veces y darle a cada una un alias diferente.
SELECT alias1.*, alias2.*
FROM mytable alias1, mytable alias2
Esto le permitirá utilizar la misma tabla para un propósito diferente en una sola consulta.
Pero afectará el rendimiento o no? –
Sí, si selecciona la tabla dos veces, tendrá que hacer el doble de trabajo. El rendimiento dependerá de cómo se usan, a qué se unen dos y los índices y estadísticas disponibles para el optimizador de consultas. –
Dado que la consulta de Chris no tiene condición de combinación (implícita o explicita), se esperaría una unión cartesiana, es decir. cada fila de la tabla se vinculará con todas las filas en la misma tabla, por lo que si tuviera 20 filas en la tabla, ¡su resultado sería 400 filas! Esto es mucho peor que duplicar el trabajo. Sin embargo, no son los alias los que están causando el trabajo, es la unión cartesiana. –
- 1. Alias para nombres de columna en Rails
- 2. Múltiples comandos en un alias para bash
- 3. : incluyen y tabla de alias
- 4. ¿Es posible obtener el alias SQL de una tabla de unión para una Hibernate sqlRestriction?
- 5. Mysql - Cómo alias una tabla completa en una combinación izquierda
- 6. nombres de tabla completo
- 7. Múltiples rangos en una tabla
- 8. NHibernate utilizando alias de tabla incorrecta
- 9. T-SQL Nombre de tabla alias
- 10. Alias para una plantilla C++?
- 11. Múltiples dominios para un sitio: alias o redirigir?
- 12. ¿Por qué usarías "AS" cuando se alias una tabla SQL?
- 13. Convenciones de alias de tipo/espacio de nombres en C#
- 14. XCode - ¿Múltiples objetivos, múltiples * nombres internacionalizados *?
- 15. Alias de espacio de nombres C++ y declaración directa
- 16. Espacios de nombres, alias y diseñador de Visual Studio Forms
- 17. MySQL y PHP: tabla no única/alias
- 18. alias de espacio de nombres acortados en aspx
- 19. ¿Es posible revertir alias un espacio de nombres C#?
- 20. Problemas del ámbito del alias del espacio de nombres
- 21. Mostrar los nombres de todas las restricciones para una tabla en Oracle SQL
- 22. ¿Existe una convención de nombres para MySQL?
- 23. En C++, ¿qué es un "alias de espacio de nombres"?
- 24. ¿Cuándo se requiere dar un nombre de tabla a un alias en SQL?
- 25. C# Espacio de nombres Alias calificador (: :) vs Desreferencia Operador (.)
- 26. Consultar nombres de columnas de una tabla de otro usuario
- 27. sustituto() para obtener nombres de argumentos, múltiples niveles de hasta
- 28. Crear un alias a otro espacio de nombres Clojure
- 29. Obtener lista de nombres de columna de una tabla vacía
- 30. Hibernate - NonUniqueDiscoveredSqlAliasException cuando dos tabla tiene mismos nombres de columna
¿Por qué querrías? ¿Tiene una consulta específica que no funciona? –
para lo que necesita eso? –
Uniones automáticas o tablas que viven en múltiples roles. Un ejemplo de esto último podría ser una tabla de dimensión de fecha que se una a una tabla de hechos con varias fechas. – ConcernedOfTunbridgeWells