Stefan Welscher: [MySQL] INNER JOIN "on demand"

Hi,
gibt es eine Möglichkeit ein INNER JOIN Bedingungsabhängig zu gestalten?

Ich habe z.B. folgende Querry:

SELECT ref.object_id, ref.object_id_r, ref.vpn_id, ref.sp_no,s1.SHA_SP_VPN_ID, s1.SHA_SP_SP_NO, s2.object_id  
FROM ((ref_sp_id AS ref  
   INNER JOIN sp_core AS s1 ON ref.object_id = s1.object_id)  
      INNER JOIN sp_core AS s2 ON (s1.SHA_SP_SP_NO = s2.sp_no) AND (s1.SHA_SP_VPN_ID = s2.vpn_id))

Hier habe ich das Problem, dass die Felder SHA_SP_SP_NO und SHA_SP_VPN_ID von sp_core nicht immer gefüllt sind. Wenn die Felder nicht gefüllt sind, sollen aber trotzdem die Felder von ref_sp_id verwendet werden, die Felder von sp_core sollen dann einfach leer bleiben (NULL).

Wie kann ich das Realisiseren?

Danke im Vorraus,
Stefan Welscher

  1. Hi,

    Hier habe ich das Problem, dass die Felder SHA_SP_SP_NO und SHA_SP_VPN_ID von sp_core nicht immer gefüllt sind. Wenn die Felder nicht gefüllt sind, sollen aber trotzdem die Felder von ref_sp_id verwendet werden, die Felder von sp_core sollen dann einfach leer bleiben (NULL).

    Ohne bei der Beschreibung ganz mitgekommen zu sein (nur ein SELECT zu sehen, ohne das Datenmodell, hilft halt nicht immer viel) - suchst du vielleicht einen LEFT JOIN (oder RIGHT, je nach Reihenfolge, in der die Tabellendaten zusammengeführt werden sollen) statt des INNER ...?

    http://aktuell.de.selfhtml.org/artikel/datenbanken/joins/#leftright_join

    MfG ChrisB

    --
    Light travels faster than sound - that's why most people appear bright until you hear them speak.
    1. Offensichtlich hast du es richtig verstanden, das war es was ich gesucht habe und jetzt weiß ich zudem auch wofür die beiden anderen JOINs gut sind ;)

      Besten Dank!