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?
Vergleich von tabellen
Moderator: Moderatoren
- Manfred
- Foren-Administrator
- Beiträge: 21219
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Vergleich von tabellen
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
- Marcus Herz
- 1000 working lines a day
- Beiträge: 861
- Registriert: Mo, 16. Jan 2006 8:13
- Wohnort: Allgäu
- Hat sich bedankt: 39 Mal
- Danksagung erhalten: 197 Mal
- Kontaktdaten:
Re: Vergleich von tabellen
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)
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)
Gruß Marcus
Den Kopf in den Sand zu stecken verbessert die Welt auch nicht.
Den Kopf in den Sand zu stecken verbessert die Welt auch nicht.
- nightcrawler
- 1000 working lines a day
- Beiträge: 653
- Registriert: Di, 24. Apr 2012 16:33
- Wohnort: 72184 Weitingen
- Hat sich bedankt: 3 Mal
- Danksagung erhalten: 96 Mal
- Kontaktdaten:
Re: Vergleich von tabellen
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
...
- Manfred
- Foren-Administrator
- Beiträge: 21219
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Re: Vergleich von tabellen
OK,
ich dachte es wäre was anderes möglich. Aber wenn alles angegeben werden muß, dann weiß ich wie ich das mache.
ich dachte es wäre was anderes möglich. Aber wenn alles angegeben werden muß, dann weiß ich wie ich das mache.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
- nightcrawler
- 1000 working lines a day
- Beiträge: 653
- Registriert: Di, 24. Apr 2012 16:33
- Wohnort: 72184 Weitingen
- Hat sich bedankt: 3 Mal
- Danksagung erhalten: 96 Mal
- Kontaktdaten:
Re: Vergleich von tabellen
Du könntest es auch noch über Stored Procedures oder Functions lösen ... das wird aber wesentlich komplexer und langsamer.