PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Jak upuścić jeden klucz łączenia podczas dołączania do dwóch stołów?

Postgres nie wyświetla błąd dla zduplikowanych nazw kolumn wyjściowych, ale niektórzy klienci to robią. (Zduplikowane nazwy też nie są zbyt przydatne).

Tak czy inaczej, użyj USING klauzula jako warunek złączenia, aby złożyć dwie kolumny złączenia w jedną:

SELECT *
FROM  tbl_a  a
LEFT  JOIN tbl_b b USING (id);

Podczas dołączania do tej samej tabeli (samozłączenie) będzie więcej zduplikowanych nazw kolumn. Zapytanie nie miałoby na początku żadnego sensu. To ma sens w przypadku różnych tabele. Tak jak powiedziałeś w swoim pytaniu na początek:I have two tables ...

Aby uniknąć zduplikowanych nazw kolumn, musisz je wymienić w SELECT klauzula jawnie - prawdopodobnie rozdając aliasy kolumn, aby uzyskać obie instancje o różnych nazwach.

Lub możesz użyć NATURAL dołącz - jeśli pasuje do twojego niewyjaśnionego przypadku użycia:

SELECT *
FROM  tbl_a  a
NATURAL LEFT JOIN tbl_b b;

To łączy wszystkie kolumny, które mają tę samą nazwę i zwija je automatycznie - dokładnie tak samo, jak wymienienie wszystkich wspólnych nazw kolumn w USING klauzula. Musisz zdawać sobie sprawę z reguł dla możliwych wartości NULL...

Szczegóły w instrukcji.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Polecenie SQL do zatrzymania zadania w pgAdmin 4

  2. Jak wstawić pojedynczy wiersz w tabeli nadrzędnej, a następnie wiele wierszy w tabeli podrzędnej w pojedynczym SQL w PostgreSQL?

  3. Obce/akcentowane znaki w zapytaniu sql

  4. Nie znaleziono sterownika postgresql JDBC w projekcie Android

  5. PostgreSQL:pętla aż do spełnienia warunku