Frage zum Sub-Query

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Frage zum Sub-Query

    Hallo,

    ich habe folgende Tabelle (die Originale ist natürlich um einiges größer und voller):

    Code:
    id|geschlecht|alter
    -------------------
    1|m|21
    2|w|34
    3|m|34
    Als Ergebnis will ich folgendes angezeigt bekommen:
    Code:
    id|geschlecht|alter
    -------------------
    2|w|34
    3|m|34
    Also ich möchte nur 2 Einträge angezeigt bekommen die gleich alt sind und das Geschlecht ungleich ist.

    Folgende Abfrage gibt mir irgendwie nicht das Ergebnis was ich brauche.
    Weiß jemand wo der Fehler liegt?

    PHP-Code:
    SELECT `id`, `geschlecht`, `alterFROM `usert WHERE (
        
    SELECT count(*) FROM `userWHERE `geschlecht` != t.`geschlecht` AND `alter` = t.`alter`
    ) >
    1 LIMIT 2 
    Zuletzt geändert von Nordin; 02.10.2012, 01:14.

  • #2
    Dafür brauchst du imho kein Subselect. Ein Self Join sollte ausreichen.

    Peter
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Kommentar


    • #3
      Danke, so klappt es:

      PHP-Code:
      SELECT u1.`id`, u1.`geschlecht`, u1.`alterFROM `user` AS u1, `user` AS u2
      WHERE u1
      .`geschlecht` != u2.`geschlecht` AND u1.`alter` = u2.`alterLIMIT 2 

      Kommentar


      • #4
        Mir ist grad aufgefallen, dass eine einfache Abfrage so nicht klappt:

        PHP-Code:
        SELECT u1.`id`, u1.`geschlecht`, u1.`alterFROM `user` AS u1, `user` AS u2 
        WHERE u1
        .`alter` = u2.`alterLIMIT 2 
        So bekomme ich zwar zwei Einträge angezeigt, jedoch sind diese dann verschieden und nicht gleich und es sind die ersten zwei. Weißt du vielleicht warum bzw. wo der Fehler liegt?!

        Kommentar

        Lädt...
        X