Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Wyświetl relację rodzic-dziecko, gdy rodzic i dziecko są przechowywane w tej samej tabeli

spróbuj tego...

SELECT a.ID, a.Name, b.Name AS 'ParentName'
FROM TABLE AS a LEFT JOIN TABLE AS b on a.ParentID = b.ID

Przy lewym sprzężeniu zapytanie nie znajdzie niczego do przyłączenia dla wartości NULL i zwróci puste dla ParentName kolumna.

EDYCJA:

Jeśli nie chcesz, aby kolumna „Nadrzędna” była pusta, ale chcesz wyświetlać myślnik „-”, użyj tego zapytania.

SELECT a.ID, a.Name, COALESCE(b.Name,'-') AS 'ParentName'
FROM TABLE AS a LEFT JOIN TABLE AS b on a.ParentID = b.ID


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Uzyskiwanie dat między zakresem dat

  2. Dlaczego konstruktor nazwy/wartości SqlParameter traktuje 0 jako null?

  3. Zapytanie aktualizujące SQL za pomocą złączeń

  4. Jak NTILE() działa w SQL Server

  5. SQL Server sprawdza rozróżnianie wielkości liter?