Nuke: SELECT-Frage (mysql)

Folgendes Beispiel arbeitet mit zwei Tabellen:

SELECT name FROM users, sessions WHERE users.wohnort = sessions.wohnort AND sessions.user = 'Nuke'

Das oben genannte Beispiel zeigt dann alle users an, deren wohnort derselbe ist wie der von sessions.users='Nuke'.

Jetzt würde mich mal interessieren, ob das ganze auch innerhalb einer einzigen Tabelle funktioniert?

SELECT name FROM users WHERE wohnort = wohnort AND user = 'Nuke'

Das Ziel: Ich möchte alle Datensätze ausgeben, deren Wohnort derselbe ist, wie der von 'Nuke'.

Hat jemand eine Idee wie man das mit einem Statement machen ohne dass ich vorher in einem extra statement den wohnort von Nuke ermitteln muss??
Geht das überhaupt?

  1. Hello,

    Hat jemand eine Idee wie man das mit einem Statement machen ohne dass ich vorher in einem extra statement den wohnort von Nuke ermitteln muss??
    Geht das überhaupt?

    Ja, und zwar mit einem Self-Join

    MfG
    Rouven

    --
    -------------------
    Eine Bilanz ist wie der Bikini einer Frau. Sie zeigt fast alles, aber verdeckt das Wesentliche  --  Günter Stotz, Regierungsdirektor des baden-württembergischen Wirtschaftsministeriums
    1. Na besten Dank :-)

      Hoffe nur, dass der INNER JOIN nicht für jeden einzelnen Datensatz durchgeführt wird. Brauche nämlich nur einen Wert (t1.id = t2.id)

  2. SELECT name FROM users WHERE wohnort = wohnort AND user = 'Nuke'

    Das Ziel: Ich möchte alle Datensätze ausgeben, deren Wohnort derselbe ist, wie der von 'Nuke'.

    Geht sowas?

      
    SELECT  
     name  
    FROM  
     users  
    WHERE  
     (  
     wohnort =  
      (  
      SELECT  
       wohnort  
      FROM  
       users  
      WHERE  
       (name = 'Nuke')  
      )  
     )  
    
    

    Wichtig, dass es nur einen 'Nuke' gibt.   ;)

  3. yo,

    Das Ziel: Ich möchte alle Datensätze ausgeben, deren Wohnort derselbe ist, wie der von 'Nuke'.

    viele wege führen nach rom, ob self-join oder unterabfrage. wichtig ist nur, dass du nicht vergisst, den vergleich des selben datensatzes auszuschließen, sprich das der wohnort von nuke nicht mit dem wohnort von nuke überprüft wird, weil der wäre ja immer gleich.

    Ilja

    1. Das Ziel: Ich möchte alle Datensätze ausgeben, deren Wohnort derselbe ist, wie der von 'Nuke'.

      viele wege führen nach rom, ob self-join oder unterabfrage.

      Was ist denn besser?