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

funkcja xlookup w SQL

Twoje zapytanie jest w zasadzie poprawne. Jedynym problemem jest to, że prawdopodobnie chcesz wszystkie wiersze z c1 z dodatkową kolumną z c2 . W tym celu c1 tabela powinna być pierwszą tabelą w 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

Usunąłem również zalegający przecinek przed FROM klauzula.

Oczywiście, jeśli wszystkie SID s w c1 są wypełnione poprawnymi wartościami, wtedy w ogóle nie potrzebujesz sprzężenia zewnętrznego. W takim przypadku kolejność c1 /c2 w FROM klauzula nie ma znaczenia.

EDYCJA:

Jeśli chcesz, aby nazwa była powiązana z researchId , użyjesz innego 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. Zmień nazwy kolumn tabeli na wielkie litery w postgresie

  2. Dziwne zestawienie z postgresql

  3. Funkcje PDO a funkcje pg_*

  4. Jak używać pętli for SQL do wstawiania wierszy do bazy danych?

  5. PostgreSQL nie może się połączyć:nie znaleziono definicji usługi