2010-02-24 20 views

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.

+0

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 .... ' –

+0

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

+0

Los fragmentos de código de arriba son solo para ilustrar el problema en cuestión. –

Cuestiones relacionadas