kostenloser Webspace werbefrei: lima-city


MySQL Select

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    pixilab

    Kostenloser Webspace von pixilab

    pixilab hat kostenlosen Webspace.

    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
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. 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
  4. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!