Czasami muszę traktować tę samą tabelę co dwie osobne tabele. Jakie jest rozwiązanie?Jak mogę odwołać się do pojedynczej tabeli wiele razy w tym samym zapytaniu?
5
A
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.
Powiązane problemy
- 1. Wywołanie CTE wiele razy w tym samym zapytaniu
- 2. Jak mogę odnieść się do tabeli TYMCZASOWEJ więcej niż raz w tym samym zapytaniu?
- 3. Jak wstawić wiele rekordów do tabeli w tym samym czasie?
- 4. Wiele do wielu relacji do pojedynczej tabeli
- 5. Wiele-do-wielu na tym samym stole
- 6. Średnia dla liczby() w tym samym zapytaniu
- 7. SVG: Czy mogę odwołać się do tego samego elementu/grupy/ścieżki zamiast kopiować go wiele razy?
- 8. Jak zliczyć wiele kluczy w tym samym zapytaniu grupy agregacji MongoDB $?
- 9. podzielić dwa razy w tym samym wyrażeniu?
- 10. Gdy wiele wywołań do tego samego UDF znajduje się w pojedynczej instrukcji, ile razy zostanie wywołana?
- 11. Jak mogę odwołać się do podprogramu Perl?
- 12. Jak wybrać max, min w tym samym zapytaniu w slick
- 13. Perl, dopasuj jeden wzór wiele razy w tym samym wierszu rozdzielonym nieznanymi znakami
- 14. Jak wybrać wiele pól w tym samym rzędzie? (MySQL)
- 15. Jak mogę odwołać się do obrazu w Meteorrze?
- 16. Jak zaznaczyć wszystkie kolumny i count (*) w tym samym zapytaniu
- 17. Jak dodać wyniki dwóch wybranych poleceń w tym samym zapytaniu
- 18. Czy zmiana wielu kolumn w tym samym zapytaniu jest szybsza?
- 19. Czy można wykonać wiele instrukcji SQL w jednym zapytaniu? Oba SELECT będzie na tym samym stole
- 20. Wiele UIAlertViews w tym samym widoku
- 21. Statyczny konstruktor jest wywoływany dwa razy w tym samym appdomain?
- 22. Android menu: Dwie grupy pojedynczej Rejestrowalne w tym samym menu
- 23. Jak dodać wiele wartości json w pojedynczej komórce tabeli dataTable
- 24. Jak złapać wiele wyjątków w tym samym czasie w Kotlin
- 25. To samo pod-zapytanie używane wiele razy w pojedynczym zapytaniu
- 26. Wiele SELECT w jednym zapytaniu
- 27. Jak powinienem organizować wiele serwerów Express w tym samym systemie?
- 28. Jak mogę odwołać się do katalogu domowego użytkownika w WIX
- 29. Jak mogę odwołać się do typu zagnieżdżonego w Spel?
- 30. Wiele skojarzeń z tym samym modelem w CakePHP 3
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 .... ' –
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
Powyższe fragmenty kodu służą jedynie zilustrowaniu problemu. –