![]() |
Datenbank: PostgreSQL • Version: 8.3.3 • Zugriff über: ADO
PostgreSQL - Abfrage aus 2 Tabellen
Hallo zusammen...
Leider habe ich gerade eine Denkblockade und brauche vielleicht nur einen kleinen Lösungsansatz: Ich habe eine PostgreSQL Datenbank mit den Tabellen "tbladress" und "tbladress_groups". tbladress enthält die Felder: AdressNo, GroupID, Name1, Name2, Name3; tbladress_groups enthält die Felder: GroupID, GroupName; Das Feld GroupID enthält jeweils die eindeutige ID einer Gruppe. Wenn ich jetzt eine SQL-Abfrage ("Select * from tbladress;") mache, dann möchte ich nicht die ID der Gruppe, sondern den Namen der Gruppe aus der der Tabelle "tbladress_groups" angezeigt haben. Wie bekomme ich das hin? |
Re: PostgreSQL - Abfrage aus 2 Tabellen
Ungetestet:
Code:
Überall wo ein Gruppenname zu der ID existiert, werden nun auch die Datensätze dazu selektiert.
SELECT
ta.*, tbg.GroupName FROM tbladress ta, tbladress_groups tbg WHERE ta.GroupID = tbg.GroupID Möchtest Du auch Datensätze ohne zugehörigen Eintrag in der Gruppen-Tabelle, musst Du einen expliziten JOIN benutzen :) |
Re: PostgreSQL - Abfrage aus 2 Tabellen
Naja, es ist so dass die Datensätze in der "tbladress" nicht alle einer Gruppe zugeordnet sind. Ich möchte aber natürlich alle Datensätze eingezeigt bekommen und da, wo eine "GroupID" zugeordnet ist, soll der "GroupName" stehen, bei den anderen fehlt diese Info dann und die Spalte bleibt leer. Dein Beispiel gibt mir die Datensätze aus, allerding mehrfach und ordnet den Zeilen, in denen keine "GroupID" vorhanden ist trotzdem einen "GroupName" zu. Wie muss ich das mit JOIN angehen?
|
Re: PostgreSQL - Abfrage aus 2 Tabellen
versuchs mal mit nem Left outer join ;)
quatsch.. äh en inner join wars glaub ich |
Re: PostgreSQL - Abfrage aus 2 Tabellen
Mein Ansatz sieht jetzt so aus, allerdings bekomme ich so keine Datensätze zurück... *grübel*
SQL-Code:
SELECT
tbladress.*, tbladress_groups.* FROM tbladress INNER JOIN tbladress_groups ON tbladress."GroupID" = tbladress_groups."GroupID"; |
Re: PostgreSQL - Abfrage aus 2 Tabellen
Nimm mal LEFT OUTER JOIN ;-)
|
Re: PostgreSQL - Abfrage aus 2 Tabellen
Dann zeigt er mir zwar wieder alle Datensätze korrekt an, aber die Spalte "GroupName" bleibt leer, egal ob eine "GroupID" vorhanden ist oder nicht...
SQL-Code:
Muss ich hier noch was umbauen oder wo liegt mein Fehler?
SELECT
tbladress.*, tbladress_groups.* FROM tbladress LEFT OUTER JOIN tbladress_groups ON tbladress."GroupID" = tbladress_groups."GroupID"; |
Re: PostgreSQL - Abfrage aus 2 Tabellen
Zitat:
PS: Statt "LEFT OUTER JOIN" kann man normalerweise auch nur "LEFT JOIN" schreiben. Das "OUTER" versteht sich an dieser Stelle von selbst. Auch statt "INNER JOIN" tut's meist schlicht "JOIN". Man ist ja schreibfaul... :stupid: |
Re: PostgreSQL - Abfrage aus 2 Tabellen
Wozu eigentlich die Gänsefüßchen in der Abfrage?
|
Re: PostgreSQL - Abfrage aus 2 Tabellen
Zitat:
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:35 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz