T
Tersus
Gast
[SQLite]&[Relationalalgebra] Wie "not in" in Relationalalgebra ausdrücken?
Guten Tag,
folgende zwei Tabellen:
Ich möchte nun alle A.Namen haben, deren A.ID = RekA.aID ist, aber nicht RekA.bID!
(1) Ich dachte mir folgenden SQL Befehl:
Im Ergebnis sollten nur die Namen der IDs 1 und 2 landen. Jedoch ist die 3 auch dabei! Die 3 befindet sich jedoch in der Spalte bID, was mich wundert.
(2) Erneuter Anlauf:
Wieso funktioniert erstes Beispiel nicht? Und was viel wichtiger ist: Wie drücke ich letzteres in Relationalalgebra aus?
Mein Versuch
πID, Name(σID <> bID (A ⨝ID, aID RekA))
würde ja eher auf (1) zutreffen, wobei ich mir nicht sicher bin, in wie weit die on-Klausel mit der where-Klausel zusammenhängt.
Wie soll ich not in in Relationalalgebra ausdrücken?
Guten Tag,
folgende zwei Tabellen:
Code:
A RekA
|----+------+ +-----+-----|
| ID | Name | | aID | bID |
|----+------+ +-----+-----|
| 1 | ... | | 1 | 3 |
| 2 | ... | | 1 | 4 |
| 3 | ... | | 1 | 5 |
| 4 | ... | | 2 | 4 |
| 5 | ... | | 3 | 5 |
|----+------| |-----+-----|
Ich möchte nun alle A.Namen haben, deren A.ID = RekA.aID ist, aber nicht RekA.bID!
(1) Ich dachte mir folgenden SQL Befehl:
Code:
select distinct Name from A join RekA on
ID = aID and ID != bID;
Im Ergebnis sollten nur die Namen der IDs 1 und 2 landen. Jedoch ist die 3 auch dabei! Die 3 befindet sich jedoch in der Spalte bID, was mich wundert.
(2) Erneuter Anlauf:
Code:
select distinct Name from A join RekA on
ID = aID where ID not in (
select bID from RekA)
Wieso funktioniert erstes Beispiel nicht? Und was viel wichtiger ist: Wie drücke ich letzteres in Relationalalgebra aus?
Mein Versuch
πID, Name(σID <> bID (A ⨝ID, aID RekA))
würde ja eher auf (1) zutreffen, wobei ich mir nicht sicher bin, in wie weit die on-Klausel mit der where-Klausel zusammenhängt.
Wie soll ich not in in Relationalalgebra ausdrücken?
Zuletzt bearbeitet von einem Moderator:
(Titel angepasst)