Zwei Abfragen in einer, aber wie?

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

  • Zwei Abfragen in einer, aber wie?

    Hallo


    Ich möchte weniger Queries für meine Datenbankabfragen verwenden, also Abfragen miteinander verknüpfen.
    Habe mir deshalb schon einige Threads dazu angesehen, bin jedoch nicht schlau draus geworden


    Ich habe zwei Tabellen:
    - anbieter_kategorien
    - kategorieid
    - kategoriename
    - anbieter_anbieter
    - anbieterid
    - kategorieid
    - anbietername
    - ...

    Nun möchte ich alle Kategorien aus der Tabelle anbieter_kategorien abfragen und jeweils die zugehörige Anzahl
    der Anbieter, die in der jeweiligen Kategorie verfügbar sind. Bisher hab ich das so gemacht, was aber nicht unbedingt
    gut für die Datenbankperformance ist:

    PHP-Code:
    $sql "SELECT kategorieid,kategoriename FROM anbieter_kategorien WHERE showkategorie=1 ORDER BY sortid ASC ";
    $result mysql_query($sql,$connection);
    if (
    mysql_num_rows($result) != 0)
      {
       
    $i 1;
       while (list(
    $kategorieid[$i],$kategoriename[$i]) = mysql_fetch_row($result))
         {
          
    $anbietercount[$i] = mysql_num_rows(mysql_query("SELECT anbieterid FROM anbieter_anbieter WHERE kategorieid='$kategorieid[$i]' && showanbieter='1' ",$connection));
          
    $i++;
         }
      } 

  • #2
    Probier' mal ein SQL-Statement in der Art:
    Code:
    SELECT k.kategorieid, k.kategoriename, COUNT(a.anbieterid) anzahl
    FROM anbieter_kategorien k
    LEFT JOIN anbieter_anbieter a
    ON k.kategorieid = a.kategorieid
    GROUP BYL k.kategorieid, k.kategoriename
    Werte auslesen ... fertig.
    carpe noctem

    [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
    [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

    Kommentar


    • #3
      Funktioniert prima. DANKE!

      Mir ist jetzt noch ne Kleinigkeit eingefallen:
      Kann man da noch einbauen, damit die kategorie nur dann ausgegeben wird, falls die anzahl > 0 ist?

      Kommentar

      Lädt...
      X