A veces necesito tratar la misma tabla como dos tablas separadas. ¿Cuál es la solución?¿Cómo puedo hacer referencia a una sola tabla varias veces en la misma consulta?
5
A
Respuesta
6
utilizar un alias como un nombre de variable en su SQL:
select
A.Id,
A.Name,
B.Id as SpouseId,
B.Name as SpouseName
from
People A
join People B on A.Spouse = B.id
2
utilizar un alias:
SELECT t1.col1, t2.col3
FROM tbl t1
INNER JOIN tbl t2
ON t1.col1 = t2.col2
9
puede hacer referencia, sólo asegúrese de usar una tabla de alias
select a.EmployeeName,b.EmployeeName as Manager
from Employees A
join Employees B on a.Mgr_id=B.Id
2
Alias es la solución más obvia
SELECT * FROM x1 AS x,y1 AS y
Sin embargo, si la tabla es el resultado de una consulta a las expresiones de tabla comunes es bastante útil
;WITH ctx AS
(select * from z)
SELECT y.* FROM ctx AS c1,ctx AS c2
Una tercera solución - adecuado cuando la consulta dura mucho tiempo - es tablas temporales:
SELECT *
INTO #monkey
FROM chimpanzee
SELECT * FROM #monkey m1,#monkey m2
DROP TABLE #MONKEY
Tenga en cuenta que una expresión de tabla común solo está disponible para una consulta (la consulta directamente después de ella) y las tablas temporales duran todo el lote.
Cuestiones relacionadas
- 1. ¿Cómo puedo hacer referencia a una tabla TEMPORAL más de una vez en la misma consulta?
- 2. Tabla MySQL -> ¿Puedes devolver la misma fila varias veces, en la misma consulta?
- 3. Django: cómo tener una varias claves externas hace referencia a la misma tabla en una tabla
- 4. Insertar varias filas con una sola consulta
- 5. Hacer SQL Seleccionar la misma fila varias veces
- 6. Seleccionar la misma fila varias veces
- 7. Unir a la izquierda la misma mesa varias veces
- 8. Reutilizando la misma página varias veces
- 9. ¿Puedo tener varias claves principales en una sola tabla?
- 10. ¿Cómo hacer referencia a un CTE dos veces?
- 11. MySQL: ¿cómo eliminar varias tablas con una sola consulta?
- 12. ¿Cómo puedo imprimir la misma variable en una cadena varias veces?
- 13. Combinando varias consultas de la misma tabla en una sola declaración SQL
- 14. ¿Cómo hacer varias parcelas en una sola página usando matplotlib?
- 15. MYSQL unirse a las tablas varias veces
- 16. ¿Es posible utilizar la misma tabla dos veces en una consulta de selección?
- 17. ¿Puedo agregar el mismo DataRow a una DataTable varias veces?
- 18. Usando la interfaz genérica varias veces en la misma clase
- 19. Ejecutando exec-maven-plugin varias veces en una sola fase
- 20. La consulta del marco de entidades devuelve la misma fila varias veces
- 21. ACTUALIZACIÓN SQL con sub-consulta que hace referencia a la misma tabla en MySQL
- 22. SQL Server 2005: Insertar varias filas con una sola consulta
- 23. unir la misma tabla dos veces en diferentes columnas
- 24. Seleccionar valores distintos de varias columnas en la misma tabla
- 25. Insertar varias filas con una sola consulta MySQL
- 26. SVG: ¿Puedo hacer referencia al mismo elemento/grupo/ruta en lugar de copiarlo varias veces?
- 27. Consulta SQL Varias columnas usando Distintivo en una sola columna
- 28. pivotar una tabla en SQL Server 2005 para contener misma columna varias veces
- 29. SQL para unir una tabla a otra tabla varias veces? (Asignación de productos a categorías)
- 30. unirse a una mesa varias veces para otras tablas
en su primer ejemplo, usa la sintaxis de unión anterior: 'SELECT * FROM x1 AS x, y1 AS y' es mucho mejor usar la sintaxis de unión actual:' SELECT * FROM x1 AS x INNER JOIN y1 AS y ON .... ' –
Te habría dado un upvote pero bot cuando uses la antigua sintaxis de unión implícita en tus ejemplos, ya que es una práctica de programación muy pobre. Además, muestra uniones cruzadas que dudo que el usuario quiera y estos tipos de uniones cruzadas accidentales son una de las razones por las que esta sintaxis fue reemplazada hace 18 años con la sintaxis de unión explícita. – HLGEM
Los fragmentos de código de arriba son solo para ilustrar el problema en cuestión. –