subselect so korrekt oder totaler müll?

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

  • subselect so korrekt oder totaler müll?

    hi!

    Code:
    mysql_result(mysql_query("SELECT COUNT(ID) FROM personenkreis
    WHERE GRPID IN
    (SELECT ID FROM kreisedaten WHERE besitzer = '$NutzerID' AND öffentlicherkreis = '1')
    AND Nutzer = '$NutzerID'
    AND Gast IN
    (SELECT ID FROM nutzer WHERE Geschlecht = '0')")
    ,0);
    ich möchte alle Nutzer (aus alle kreisen) eines bestimmten Mitglieds aus der tabelle "personenkreis" ausgeben.

    folgende Bedingungen müssen gegeben sein:

    1. in tabelle "kreisedaten" muß "öffentlicherkreis = '1'" sein

    (erklärung: in der tabelle "kreisedaten" muß der wert in der spalte "öffentlicherkreis" = 1 sein, da wenn 0, der kreis privat ist.)

    2. in der tabelle "benutzer" muß "Geschlecht" = '0' sein

    (Erklärung: der Wert 0 bei der spalte "Geschlecht" steht für "männlich" bzw. es sollen nur alle männlichen Personen gezählt werden.)

    man könnte alles mit left join machen, aber ich habe mal gelesen das joins nicht mehr so der "stein der weisen" sein soll, im bezug auf die geschwindigkeit).

    wie kann ich das noch optimieren oder müßte ich das komplett anders machen. zumindest so zeigt er mir die ergebnisse an.

    jetzt weiß ich nicht ob das totaler müll ist bzw. total ineffizient. über eure hilfe bzw. entsprechende lösungsvorschläge würde ich mich freuen.

  • #2
    Zitat von Gamer20 Beitrag anzeigen
    man könnte alles mit left join machen, aber ich habe mal gelesen das joins nicht mehr so der "stein der weisen" sein soll, im bezug auf die geschwindigkeit
    Sagt wer?

    Und vielleicht solltest du einen INNER JOIN statt einem LEFT JOIN verwenden. Der ist unter MySQL wesentlich performanter.

    Kommentar


    • #3
      ok danke, anscheinend könnte man es so machen.
      mit dem innerjoin werde ich mir mal anschauen und ggf. bestimmte abfragen abändern.

      Kommentar

      Lädt...
      X