Kuno: Gegenteil von INNER JOIN?

HI!

ich such sowas wie das gegenteil von INNER/LEFT JOIN (mySQL).

INNER JOIN erzwingt ja ein Matching in der JOIN-Tabelle.

Ich möchte gerne alle Datensätze aus der Haupttabelle anzeigen, bei denen der JOIN zu keinem Ergebnis kommt.

Beispiel:

  
SELECT a.name FROM users a LEFT JOIN b.photos ON b.userid=a.id  

Im Gegensatz zum obigen Statement möchte ich aber nur alle Datensätze aus "users" angezeigt bekommen, der kein Gegenstück in "photos" hat.
Also quasi das direkte Gegenteil von einem INNER JOIN.

  1. Hi,

    Ich möchte gerne alle Datensätze aus der Haupttabelle anzeigen, bei denen der JOIN zu keinem Ergebnis kommt.

    das Gegenteil eines INNER JOIN ist der OUTER JOIN. Überraschung! ;-)

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. Komisch, das kennt mein mySQl irgendwie nicht....

  2. Hallo

    Beispiel:

    SELECT a.name FROM users a LEFT JOIN b.photos ON b.userid=a.id

    
    >   
    > Im Gegensatz zum obigen Statement möchte ich aber nur alle Datensätze aus "users" angezeigt bekommen, der kein Gegenstück in "photos" hat.  
      
    siehe MySQL-Handbuch, Abschnitt [Join](http://dev.mysql.com/doc/refman/5.0/en/join.html):  
      
    <zitat>  
        If there is no matching row for the right table in the ON or USING  
        part in a LEFT JOIN, a row with all columns set to NULL is used for  
        the right table. You can use this fact to find rows in a table that  
        have no counterpart in another table:  
    </zitat>  
      
    In Deinem Fall:  
      
    ~~~sql
    SELECT  
        a.name  
    FROM users a  
    LEFT JOIN photos b  
    ON b.userid=a.id  
    WHERE b.userid IS NULL
    

    Freundliche Grüße

    Vinzenz

    1. Ah mist da hätt ich auch selbst drauf kommen können...
      Danke für die Beteiligung und den Tipp mit "IS NULL" !