-
SQL-Joins
Hallo,
ich stehe gerade etwas auf dem Schlauch bzw. sehe den Wald vor lauter Bäumen nicht.
Und zwar habe ich 2 Dateien (Datei A und Datei B) mit demselben eindeutigen Key-Feld.
Jetzt kann es vorkommen, dass zu einem Key in beiden Dateien ein Eintrag existiert oder nur in Datei A oder nur in Datei B.
Bei einem INNER JOIN erhalte ich ja nur die Sätze, die in beiden Dateien vorkommen. Bei einem LEFT JOIN erhalte ich alle, die in beiden vorkommen plus diejenigen, die nur in Datei A vorkommen. Doch wie muss ich nun joinen, um die Datensätze in allen 3 Varianten zu erhalten ("nur in Datei A vorhanden" plus "in beiden Dateien vorhanden" plus "nur in Datei B vorhanden").
Vielen Dank,
KM
-
Ohne getestet zu haben eventuell so:
PHP-Code:
Select * from FileA a
where exists (Select * from FileB B where a.key1 = b.key1)
union all
Select * from FileA c
where not exists (Select * from FileB d where c.key1 = d.key1)
union all
Select * from FileB e
where not exists (Select * from FileA f where e.key1 = f.key1)
-
Wenn Du auf Release 6.1 oder höher bist:
Code:
Select a.*, b.*
From FileA a Full Outer Join FileB b
on a.key1 = b.Key1
and a.Key2 = b.Key2
and ....
and a.KeyN = b.KeyN
vor 6.1
Code:
Select a.*, b.*
From FileA a Left Outer Join FileB b on a.Key1 = b.Key1 ....
Union
Select a.*, b.*
From FileA a Right Outer Join FileB b. on a.Key1 = b.Key1 ....;
-
Ich hab's gerade in der IBM-Doku gefunden (ein simulierter Full Outer Join):
SELECT EMPNO, LASTNAME, PROJNO
FROM CORPDATA.EMPLOYEE LEFT OUTER JOIN CORPDATA.PROJECT
ON EMPNO = RESPEMP
WHERE LASTNAME > 'S'
UNION
(SELECT EMPNO, LASTNAME, PROJNO
FROM CORPDATA.PROJECT EXCEPTION JOIN CORPDATA.EMPLOYEE
ON EMPNO = RESPEMP
WHERE LASTNAME > 'S')
Vielen Dank,
KM
-
@Birgitta:
Wir sind leider noch auf V5R4. Aber hoffentlich nicht mehr lange. Es ist schon frustrierend, wenn man sieht was mit den neueren Releases geht, aber mit V5R4 noch nicht.
Gruß,
KM
-
Wem sagst Du das, ich muss hier alles auf V5R4 herunterwandeln und das noch solange bis der letzte unserer Kunden auf ein höheres Release gegangen ist.
Birgitta
-
Ich muss z.T. noch mit V5R2 arbeiten, da scheitert der Optimizer noch an ungleichen Definitionen bei numerischen Feldern (decimal->numeric) um Indizes zu verwenden. Ohne Cast geht da nichts.
Aber man kann trotzdem performante SQL's entwickeln.
Und andere Datenbanken haben noch SQL92, da geht auch noch nicht viel.
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks