MySQL Select
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
-
Hallo, ich habe 3 Selects, die ich gerne miteinander verketten möchte.
S1:
SELECT s_id FROM `smw_rels2` WHERE `p_id`='94' AND `o_id`='141'
s_id
140
276
297
332
S2:
SELECT s_id FROM `smw_rels2` WHERE `p_id`='95' AND `o_id`='96'
s_id
90
254
297
302
311
S3:
SELECT s_id FROM `smw_rels2` WHERE `p_id`='96' AND `o_id`='307'
s_id
305
Es Soll S1 && S2 || S3 gelten, dh. Es sollen die Ids 297 und 305 ausgegeben werden.
Damit schaffe ich S1 && S2 aber ich komme nicht dahinter, wie man noch das || S3 einbauen könnte
SELECT `s_id` FROM `smw_rels2` WHERE `p_id`='94' AND `o_id`='141' OR `p_id`='95' AND `o_id`='96' group by `s_id` having count(*) > 1
Kann mir jemand weiter helfen?
EDIT: Glaub hab es rausgefunden. Bin mir Aber nicht sicher, wie das aussieht, wenn ich ganz viel Verketten will S1 && S2 || (S2&&S3&&S4)...
SELECT * FROM `smw_rels2` WHERE `p_id`='94' AND `o_id`='141' OR `p_id`='94' AND `o_id`='96' group by `s_id` having count(*) > 1 UNION SELECT * FROM `smw_rels2` WHERE `p_id`='94' AND `o_id`='307'
Beitrag zuletzt geändert: 20.6.2012 18:05:18 von pixilab -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Per Mengenoperatoren ginge es natürlich auch aber leichter ist es, einfach den WHERE-Teil zu erweitern und zwar ganz genau nach dem Muster, wie du es bereits gemacht hast:
S1 && S2 || (S2&&S3&&S4)...
Dein Query sieht dann am Ende so aus:
SELECT s_id FROM `smw_rels2` WHERE ((`p_id`='94' AND `o_id`='141') OR (`p_id`='95' AND `o_id`='96')) AND (`p_id`='96' AND `o_id`='307')
Also
SELECT .... FROM ... WHERE ((Bedingung1 OR Bedingung2) AND Bedingung3)
Einige der Klammern in dem Query oben sind nicht notwendig und dienen nur der Übersichtlichkeit
lg Vex -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage