Seite 1 von 1

Vergleich von tabellen

Verfasst: Di, 19. Okt 2021 19:08
von Manfred
Hi,
gegeben ist eine Tabelle (Vater) mit den Feldern
Mon, Die, Mit, Don, Fre, Sam, Son
Alles logische Felder. Es können je Satz alle oder nur ein Feld auf TRUE stehen.
Mit den Werten möchte ich in einer anderen Tabelle (Sohn) suchen, in denen Sätze stehen, die die gleichen Felder haben, aber unterschiedliche Werte.
Wenn nun in dem Vatersatz Mon, Mit, Fre ein True haben, dann soll über SELECT aus der Sohntabelle alles ermittelt werden was irgendwie ein TRUE in den Felder Mon, Mit, Fre hat. Egal in welcher Kombination. Hauptsache ein True stimmt überein.
Gibt es da vielleicht unter SQL einen einfachen Befehl, der alle Felder miteinander vergleicht und dann bei TRUE in beiden den Satz übernimmt? Oder muß man da wirklich Stück für Stück alles händisch eingeben und vergleichen?

Re: Vergleich von tabellen

Verfasst: Mi, 20. Okt 2021 8:53
von Marcus Herz

Code: Alles auswählen

select * from vater
left join kind on <bedingung>
where 
iif(vater.mon, kind.mon, false) or
iif(vater.die,  kind.die, false) or
iif(vater.mit, kind.mit, false) or
iif(vater.don,  kind.don, false) or
iif(vater.fre,   kind.fre, false) or
iif(vater.sam, kind.sam, false) or
iif(vater.son,  kind.son, false) 
Denke das könnt stimmen.
Alternativ, aber hier denk ich fehlt was:

Code: Alles auswählen

select * from vater , kind
where 
iif(vater.mon, kind.mon, false) or
iif(vater.die,  kind.die, false) or
iif(vater.mit, kind.mit, false) or
iif(vater.don,  kind.don, false) or
iif(vater.fre,   kind.fre, false) or
iif(vater.sam, kind.sam, false) or
iif(vater.son,  kind.son, false) 

Re: Vergleich von tabellen

Verfasst: Mi, 20. Okt 2021 12:14
von nightcrawler

Code: Alles auswählen

SELECT * FROM vater v
INNER JOIN kind k ON v.ID=k.VATER_ID //join Bedingung
WHERE
  (v.MO AND k.MO) OR
  (v.DI AND k.DI) OR
  ...

Re: Vergleich von tabellen

Verfasst: Mi, 20. Okt 2021 12:38
von Manfred
OK,
ich dachte es wäre was anderes möglich. Aber wenn alles angegeben werden muß, dann weiß ich wie ich das mache.

Re: Vergleich von tabellen

Verfasst: Mi, 20. Okt 2021 12:42
von nightcrawler
Du könntest es auch noch über Stored Procedures oder Functions lösen ... das wird aber wesentlich komplexer und langsamer.