Wie gehe ich hier am besten mit Joins um?
Lukas der kranke
- datenbank
Guten Tag,
ich habe folgende Tabellen: x(1-4)
x1
id wert1 wert2
0 200 50
x2
id things
0 x3
x3
id name things
1 TheKiller 0
x4
id x2id x3id x1id
0 0 1 0
Ich hoffe man kann erkennen das:
"The Killer" steht in der Tabelle x3, das ist auch in x2 nochmal angegeben, und es gehört der wer 200 und 50 dazu, das erkennt man in x4.
Die Abfrage heißt also wörtlich:
Gebe mir x1id aus x4
wo (x2id = x3.things und x3id=x3.id WO x3.name='The Killer')
Gebe mir anschließend wert1 und wert2 von x1
wo id=x1id
Sind die Tabellen so okay?
Wie packe ich das alles in eine Abfrage? Mit Joins?
mfg
Lukas
Guten Abend,
Wie packe ich das alles in eine Abfrage? Mit Joins?
Ja, mit JOINS!
SELECT ....
FROM x4
JOIN x3 ON x3.Id = x4.x3Id
JOIN x2 ON x2.Id = x4.x2Id
JOIN x1 ON x1.Id = x4.x1Id
WHERE x3.Name = 'TheKiller'
Was hast du denn selbst schon versucht?
Ciao, Frank
Hey bist du sicher das das richtig ist?
SELECT ....
FROM x4
JOIN x3 ON x3.Id = x4.x3Id
JOIN x2 ON x2.Id = x4.x2Id
JOIN x1 ON x1.Id = x4.x1Id
WHERE x3.Name = 'TheKiller'
Also nach SELECHT würde ich ja in dem Fall wert1 und wert2 hinschreiben, hab ich auch gemacht aber trotzdem krieg ich die nicht..
Hier nochmal die alte Tabelle
x1
id wert1 wert2
0 200 50
x2
id things
0 x3
x3
id name things
1 TheKiller 0
x4
id x2id x3id x1id
0 0 1 0
Ich habe als vorgabe x3.namen und will dazu die werte wert1 und wert2.
Probiert schon 1000 varianten aber ich kenn mich mit joins null aus, so endete das ganze dann auch immer dementsprechend obwohl ich mich die ganze zeit shcon damit beschäftige udn versuche das alles zu verstehen.
lg Lukas
Probiert schon 1000 varianten
Na dann präsentier doch wenigstens mal eine davon.
Ein meinem Beispiel habe ich dir angegeben, wie die Tabellen zusammen-gejoint werden und wie man Felder aus den einzelnen beteiligten Tabellen notiert/referenziert.
Also nach SELECHT würde ich ja in dem Fall wert1 und wert2 hinschreiben
Vielleicht noch mit x1. jeweils davor? Und was passiert dann?
Ciao, Frank
Hi.
Na dann präsentier doch wenigstens mal eine davon.
SELECT x1.wert1, x1.wert2
FROM x4
INNER JOIN (x2 INNER JOIN x3 ON x3.id = x4.x3id) ON x2.ID = x4.x2id
WHERE x3.name="TheKiller";
Also nach SELECHT würde ich ja in dem Fall wert1 und wert2 hinschreiben
Vielleicht noch mit x1. jeweils davor? Und was passiert dann?
Klappt auch nicht,
Ciao
Lukas
Hallo,
INNER JOIN (x2 INNER JOIN x3 ON x3.id = x4.x3id) ON x2.ID = x4.x2id
hatte ich irgendwas von Klammern von meinem Beispiel erwähnt? Wo kommen die dann also her?
Klappt auch nicht,
ist keine Fehlerangabe!
Ciao, Frank
Hallo.
hatte ich irgendwas von Klammern von meinem Beispiel erwähnt? Wo kommen die dann also her?
Du wolltest wissen was ich denn sonst schon(ich habe damit verstanden abgesehen von deinem vorschlag) schon probiert habe..
Klappt auch nicht,
ist keine Fehlerangabe!
Das weiß ich auch, nur es kommt keine Fehlermeldung (trotz Angabe von "or die ("Fehler <br/>".mysql_error())" . ich hab das auch an der richtigen stelle.
Es ist einfach so das dass ergebnis leer ist.
Bye
Phil Z.
Hallo
hatte ich irgendwas von Klammern von meinem Beispiel erwähnt? Wo kommen die dann also her?
Du wolltest wissen was ich denn sonst schon(ich habe damit verstanden abgesehen von deinem vorschlag) schon probiert habe..
kennst Du schon unsere Join-Artikel?
Einführung in Joins.
Fortgeschrittene Jointechniken.
Letzerer informiert Dich auch über Klammersetzung :-)
Freundliche Grüße
Vinzenz