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

xlookup функция в SQL

Вашето запитване е основно правилно. Единственият проблем е, че вероятно искате всички редове от c1 с допълнителната колона от c2 . За това c1 трябва да е първата таблица в LEFT JOIN :

SELECT c1.SID, c1.FID, c1.companyname, 
       C1.parentID, c1.parentname, c1.companytype,
       c1.companystatus, c2.researchID
FROM c1 LEFT JOIN
     c2 
     ON c2.SID = c1.SID

Освен това премахнах запетая преди FROM клауза.

Разбира се, ако всички SID s в c1 са попълнени с правилни стойности, тогава изобщо не се нуждаете от външно съединение. В този случай подреждането на c1 /c2 в FROM клаузата няма значение.

РЕДАКТИРАНЕ:

Ако искате името да е свързано с researchId , бихте използвали друг JOIN :

SELECT c1.SID, c1.FID, c1.companyname, 
       C1.parentID, c1.parentname, c1.companytype,
       c1.companystatus, c2.researchID,
       c2r.companyName
FROM c1 LEFT JOIN
     c2 
     ON c2.SID = c1.SID LEFT JOIN
     c2 c2r
     ON c2r.SID = c2.ResarchID



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Защо \dt на PostgreSQL показва само публични таблици със схеми?

  2. Сортирайте клеймата за време (включително бъдеще) по абсолютно разстояние от сега

  3. Не можа да се свърже със сървър на postgres в докер от докеризирано приложение

  4. PostgreSQL GIN индекс на масив от uuid

  5. Общ брой записи на седмица