PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Как да изпуснете един ключ за присъединяване при съединяване на две таблици

Postgres не би ви дава грешка за дублирани имена на изходни колони, но някои клиенти го правят. (Дублиращите се имена също не са много полезни.)

И в двата случая използвайте USING клауза като условие за свързване, за да сгънете двете колони за свързване в една:

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

Докато се присъединявате към една и съща таблица (самосъединяване), ще има повече дублирани имена на колони. Запитването едва ли би имало смисъл като начало. Това започва да има смисъл за различни маси. Както казахте във въпроса си като начало:I have two tables ...

За да избегнете всички дублирани имена на колони, трябва да ги изброите в SELECT клауза изрично - евентуално раздаване на псевдоними на колони, за да получите и двата екземпляра с различни имена.

Или можете да използвате NATURAL присъединяване - ако това отговаря на вашия необясним случай на употреба:

SELECT *
FROM  tbl_a  a
NATURAL LEFT JOIN tbl_b b;

Това се присъединява към всички колони, които споделят едно и също име и ги сгъва автоматично - точно същото като изброяването на всички общи имена на колони в USING клауза. Трябва да сте наясно с правилата за възможни NULL стойности ...

Подробности в ръководството.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ключови неща, които трябва да наблюдавате в PostgreSQL – анализиране на вашето работно натоварване

  2. Управление на замръзване в PostgreSQL

  3. Изпълнение на задействане при изглед?

  4. Как да настроя PostgreSQL за Play 2.0?

  5. ЗАБЕЛЕЖКИ за последователност след изпълнение на миграция в релси на приложение postgresql