2010-02-24 11 views

Odpowiedz

6

użyć alias jak nazwy zmiennej w swojej 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

Użyj aliasu:

SELECT t1.col1, t2.col3 
FROM tbl t1 
INNER JOIN tbl t2 
    ON t1.col1 = t2.col2 
9

można odwołać, tylko pamiętaj, aby użyć aliasu stolik

select a.EmployeeName,b.EmployeeName as Manager 
from Employees A 
join Employees B on a.Mgr_id=B.Id 
2

aliasu najbardziej oczywiste rozwiązanie

SELECT * FROM x1 AS x,y1 AS y 

Jednak jeśli tabela jest wynikiem kwerendy wspólne wyrażenia tabeli jest całkiem przydatna

;WITH ctx AS 
(select * from z) 
SELECT y.* FROM ctx AS c1,ctx AS c2 

Trzecie rozwiązanie - odpowiednia, gdy zapytanie trwa długo - to tabele tymczasowe:

SELECT * 
INTO #monkey 
FROM chimpanzee 

SELECT * FROM #monkey m1,#monkey m2 

DROP TABLE #MONKEY 

Uwaga wspólne wyrażenie tabela dostępna jest tylko dla jednego zapytania (kwerendy bezpośrednio po niej) i tabel tymczasowych ostatnie dla całej partii.

+0

w pierwszym przykładzie, należy użyć starego dołączyć składni: SELECT * FROM 'jako x x1, y1 AS y' jest o wiele lepiej jest użyć składni aktualny dołączenia:' SELECT * FROM x1 AS x INNER JOIN y1 jako Y ON .... ' –

+0

Dałbym ci upvote ale bot gdy używasz starej składni niejawny przyłączenia się swoimi przykładami jak to jest bardzo słaba praktyka programowania. Dodatkowo pokazujesz połączenia krzyżowe, które wątpię w potrzeby użytkownika, a tego typu przypadkowe połączenia krzyżowe są jednym z powodów, dla których ta składnia została zastąpiona 18 lat temu przez jawną składnię złączenia. – HLGEM

+0

Powyższe fragmenty kodu służą jedynie zilustrowaniu problemu. –

Powiązane problemy