simon: SQL, Join, Datensatz nicht vorhanden

Hallo zusammen,

ich habe eine vielleicht etwas ungewöhnliche Frage, aber vieleicht kann mir jmd helfen. Ich habe eine mehrfach verkettete SQL Abfrage und versuche nun die Daten zu finden, in denen ein Join ein leeres ergebnis liefert.

Hier der Code:

  
SELECT DISTINCT  ap.id AS idAP, ap.idUser, ap.workExampleType, ap.title, ap.subtitle, meta2.meta_value AS publishingDate, meta3.meta_value AS publisher, user.name, user.vorname  
  
FROM  ".$tabelle_1." ap  
  
INNER JOIN ".$tabelle_2." meta  
  ON meta.idAP = ap.id  
  AND meta.meta_key = 'bestAP'  
  AND meta.meta_value = 'true'  
INNER JOIN ".$tabelle_2." meta2  
  ON meta2.idAP = ap.id  
  AND meta2.meta_key = 'publishingDate'  
INNER JOIN ".$tabelle_2." meta3  
  ON meta3.idAP = ap.id  
  AND meta3.meta_key = 'publisher'  
  
INNER JOIN ".$tabelle_3." storageWatcher  
  ON storageWatcher.moduleSpecificID = ap.id  
  AND storageWatcher.module = 'arbeitsproben_images'  
  
INNER JOIN ".$tabelle_4." user  
  ON user.id = ap.idUser  
WHERE ap.status LIKE 'published'  
  AND ap.language LIKE 'de'  
  ORDER BY RAND()  
  LIMIT 5";

Genau genommen habe ich mit folgenden Zeilen das Problem: ~~~sql

INNER JOIN ".$tabelle_3." storageWatcher
  ON storageWatcher.moduleSpecificID = ap.id
  AND storageWatcher.module = 'arbeitsproben_images'

  
Ich möchte nun Datensätze, die KEINEN Eintrag in $tabelle\_3 haben. Nur wie frag ich das ab? Bin für Tipps und Ratschläge Dankbar.  
  
- Simon
  1. Hallo,

    ich habe eine vielleicht etwas ungewöhnliche Frage, aber vieleicht kann mir jmd helfen. Ich habe eine mehrfach verkettete SQL Abfrage und versuche nun die Daten zu finden, in denen ein Join ein leeres ergebnis liefert.

    Ich möchte nun Datensätze, die KEINEN Eintrag in $tabelle_3 haben. Nur wie frag ich das ab? Bin für Tipps und Ratschläge Dankbar.

    a) mit einem Subselect statt einem Join
    b) mit einem LEFT OUTER JOIN auf die Tabelle und dem Einsatz von ISNULL

    siehe z.B.

    </archiv/2011/2/t203216/#m1373597>ff
    </archiv/2007/11/t161536/#m1050822>

    Freundliche Grüße

    Vinzenz

    1. Super, Danke!

      Hab es mit einem Subselect gelöst