ERLEDIGT
NEIN
NEIN
ANTWORTEN
3
3
ZUGRIFFE
210
210
EMPFEHLEN
-
20.08.10 09:25 #1erika7 Tutorials.de Gastzugang
Hallo zusammen,
hab im Forum gesucht, aber leider nichts gefunden, weiß aber auch nicht wirklich, nach was ich da suchen muss. Außerdem bin ich in SQL noch nicht so fit, wie ich es für diese Anforderung vielleicht sein müsste.
Also es geht um folgendes:
Ich habe drei Tabellen für Übersetzungsterme die ich hier mal sehr vereinfacht beschreibe:
Tabelle 1: key, term
Tabelle 2: key, sprache
Tabelle 3: termkey, sprachkey, übersetzung
Ein kleines Beispiel mit drei Übersetzungstermen:
Tabelle 1: (1,Herr), (2,Frau), (3,Kind)
Tabelle 2: (1,DE), (2,EN), (3,FR)
Tabelle 3: (1,1,Herr), (2,1,Frau), (3,1,Kind), (2,1,Mr), (3,2,Madame)
Mit SELECT ... FROM Tab1, Tab2 erhalte ich alle Term-Sprachkombinationen, die es gibt, das ist mir klar.
Und mit SELECT ... FROM Tab1, Tab2, Tab3 WHERE Tab1.key=Tab3.termkey AND Tab2.key=Tab3.sprachkey würde ich alle definierten Terme bekommen. (Herr, DE, Herr), (Frau, DE, Frau), (Kind, DE, Kind), (Herr, EN, Mr), (Frau, FR, Madame)
Was ich aber brauche, sind genau die Terme, die nicht definiert sind, also (Frau, EN), (Kind, EN), (Herr, FR), (Kind, FR).
Ist so etwas machbar? Kann man irged wie die Differenz zwischen der ersten und der zweiten Abfrage berechnen? Und wenn ja, wie?
Würde mich freuen, wenn mir hier einer helfen könnte.
Gruß,
Erika
-
so
oder soCode sql:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
SELECT allalloc.* FROM ( SELECT term.KEY AS termkey, lang.KEY AS sprachkey FROM tab1 AS term, tab2 AS lang ) AS allalloc LEFT JOIN tab3 AS alloc ON allalloc.termkey = alloc.termkey AND allalloc.sprachkey = alloc.sprachkey WHERE alloc.termkey IS NULL
Code sql:1 2 3 4 5 6 7 8
SELECT term.KEY AS termkey, lang.KEY AS sprachkey FROM tab1 AS term, tab2 AS lang WHERE ROW(term.KEY, lang.KEY) NOT IN (SELECT termkey, sprachkey FROM tab3)
Beides geht....---------------------------------------------------------------------------------------------------
item: Tutorial: [PHP][MySQL] Debug Queries
item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben
-
Klasse Ansatz yaslaw, meiner war etwas sehr komplex, da ich ROW noch gar nicht kannte

Damit aber die Ausgabe korrekt ist, selektieren wir nicht den key
Code sql:1 2 3 4 5 6 7
SELECT tab1.term, tab2.sprache FROM tab1, tab2 WHERE ROW(tab1.KEY, tab2.KEY) NOT IN (SELECT termkey, sprachkey FROM tab3)
Gruß Steusi
Sollte dir ein Tipp von mir geholfen haben, freue ich mich auch über eine kleine Bewertung.
Und wenn ein Problem gelöst ist, markiere deinen Beitrag bitte als erledigt.
PHP-Code:$fehler = "dummer Tippfehler";
echo("Und ist das Programm noch so klein, es passt immer noch ein ".$fehler". rein!");
-
20.08.10 11:32 #4erika7 Tutorials.de Gastzugang
Hallo yaslaw, hallo Steusi,
vielen Dank für Eure Antworten. Die Lösung ist genau das was ich suchte. Das mit den Subqueries muss ich wohl noch lernen, aber die Lösung ist sehr elgenant und einfach umzusetzen. Wie immer: Ganz einfach, wenn man weiß wies geht...
Dami ist mein Problem gelöst.
Nochmals vielen Dank,
erika7
Ähnliche Themen
-
Installshield: Dateien nicht mehr installieren, vorhandene jedoch nicht entfernen
Von DrMueller im Forum Microsoft WindowsAntworten: 1Letzter Beitrag: 21.11.10, 23:56 -
Fehlende Einträge suchen
Von Sasser im Forum Relationale DatenbanksystemeAntworten: 3Letzter Beitrag: 05.01.09, 16:47 -
mehrfach vorhandene Einträge nur einmal finden
Von supersalzi im Forum Relationale DatenbanksystemeAntworten: 2Letzter Beitrag: 12.06.07, 22:38 -
Einträge in Excel suchen
Von Serethos im Forum JavaAntworten: 2Letzter Beitrag: 21.11.06, 17:07 -
Einträge suchen (Wildcards?)
Von maceo im Forum Relationale DatenbanksystemeAntworten: 3Letzter Beitrag: 14.09.04, 09:02





Zitieren

Login




