AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi SQL-Join um nicht zugeordnete Elemente zu finden
Thema durchsuchen
Ansicht
Themen-Optionen

SQL-Join um nicht zugeordnete Elemente zu finden

Ein Thema von VizeTE · begonnen am 3. Mai 2005 · letzter Beitrag vom 9. Mai 2005
Antwort Antwort
VizeTE

Registriert seit: 31. Dez 2002
178 Beiträge
 
Delphi 5 Enterprise
 
#1

SQL-Join um nicht zugeordnete Elemente zu finden

  Alt 3. Mai 2005, 17:51
Datenbank: Interbase • Version: 4.5 • Zugriff über: BDE
Hi,

ich habe 2 Tabellen und benötige eine Abfrage, die mir alle Datensätze in Tabelle a ausgibt die nicht in Tabelle b sind und die mir alle Datensätze aus Tabelle b ausgibt die nicht in Tabelle a sind. (über Primärschlüssel)

Folgender Join zeigt mir alle Datensätze aus beiden Tabellen. Datensätze die nicht zugeordnet sind erkennt man daran, daß eines der beiden Felder leer bleibt.
SQL-Code:
SELECT a.Id AS A, b.Id AS B
FROM TabelleA a
FULL OUTER JOIN TabelleB b ON b.Id = a.Id
Ich möchte als Ergebnismenge gern die Datensätze erhalten, bei denen ein Feld leer ist. Daher habe ich folgende Anweisung probiert
SQL-Code:
SELECT a.Id AS A, b.Id AS B
FROM TabelleA a
FULL OUTER JOIN TabelleB b ON b.Id = a.Id
WHERE a.Id IS NULL OR b.Id IS NULL
Leider gibt diese Anweisung nicht das gewünschte Ergebnis zurück. Hier bekomme ich alle Datensätze aus a und die entsprechenden Felder aus b sind leer und daran angehangen alle Datenstätze aus b und die entsprechenden Felder aus a sind leer.

Ich hoffe ihr versteht mein Problem.

thx - VizeTE
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#2

Re: SQL-Join um nicht zugeordnete Elemente zu finden

  Alt 3. Mai 2005, 18:05
SQL-Code:
SELECT * FROM TabelleA
WHERE NOT EXISTS(SELECT TabelleB.Id FROM TabelleB WHERE TabelleB.Id=TabelleA.Id)
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.195 Beiträge
 
Delphi 10.4 Sydney
 
#3

Re: SQL-Join um nicht zugeordnete Elemente zu finden

  Alt 3. Mai 2005, 18:50
Evtl. so (ohne Test):
SQL-Code:
SELECT a.id as missing from a left outer join b on a.id = b.id where b.id is null
UNION
SELECT b.id as missing from b left outer join a on b.id = a.id where a.id is null
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
VizeTE

Registriert seit: 31. Dez 2002
178 Beiträge
 
Delphi 5 Enterprise
 
#4

Re: SQL-Join um nicht zugeordnete Elemente zu finden

  Alt 9. Mai 2005, 08:57
Zitat von shmia:
SQL-Code:
SELECT * FROM TabelleA
WHERE NOT EXISTS(SELECT TabelleB.Id FROM TabelleB WHERE TabelleB.Id=TabelleA.Id)
Wenn ich das richtig verstehe (und ein Test der Abfrage bestätigt das) dann bekomme ich hier ja nur die DS die in der ersten, jedoch nicht in der zweiten Tabelle vorhanden sind. Das macht ja meine erste Abfrage auch schon. Ich möchte jedoch noch zusätzlich die DS, die in der zweiten Tabelle, jedoch nicht in der Ersten vorkommen.

Zitat von Bernhard Geyer:
Evtl. so (ohne Test):
SQL-Code:
SELECT a.id as missing from a left outer join b on a.id = b.id where b.id is null
UNION
SELECT b.id as missing from b left outer join a on b.id = a.id where a.id is null
ja klar, so gehts. Da hätte ich ja auch selber d'rauf kommen können. Danke!
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:07 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz