Mehrere MySQL Abfragen vereinen?

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

  • Mehrere MySQL Abfragen vereinen?

    Hi,

    ich hab da eine kleine Frage. Hoffe jemand kann mir weiter auf die Sprünge helfen.

    Die Tabelle xxx:

    -----------------------------------------------------------------
    | id | summe1 | summe 2 | status1 | status2 | type |
    -----------------------------------------------------------------

    habe mehrere MySQL Abfragen (mit PHP):

    PHP-Code:
    mysql_query("Select sum(summe1) as sum_summe1 From xxx Where status1 = 1");
    mysql_query("Select count(summe2) as count_summe2 From xxx Where status2 = 1 AND type = 2");
    mysql_query("Select sum(summe1) as sum_summe3 From xxx Where status1 = 4 And status2 = 3 Or type = 1"); 
    Ich versuche die drei Abfragen nun zu vereinen, da es sich ja um die selbe Tabelle handelt und ich nicht so oft eine abfrage starten will (denn anschließend muss man es ja noch in einen array etc holen . )
    Leider bereiten mir die unterschiedlichen Where's Sorge. Ich weiß nicht, wie ich die den einzelnen Abfragen zuordnen kann.

    Das habe ich:
    PHP-Code:
    mysql_query("Select sum(summe1) as sum_summe,  count(summe2) 
    as count_summe2, sum(summe1) 
    as sum_summe3 
    From xxx Where ????"
    ); 
    Soweit kommt glaube ich jeder, aber was soll man bei den Fragezeichen eingeben?

    Falls jemand Abhilfe weiß, wäre ich sehr dankbar.
    Zuletzt geändert von geugen; 03.01.2006, 21:12.

  • #2
    1. solltest du mal ein paar zeilenumbrüche in deinen code bringen! (stichwort: scrollbars)
    2. warum verwendest du einmal COUNT() und einmal SUM() ?
    3. was sprich dagegen drei einzeilabfragen zu machen? die sind sicherlich in der summe schneller als eine monster-query.
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      ad 2. es sind alles Zahlen und einmal will ich eben die Summe, ein anderes Mal die Anzahl der betroffenen Datensätze wissen.

      ad 3. damit das Problem besser verständlich wird, habe ich die Abfragen etwas größer gestaltet. In Wirklichkeit gibt es da nur geringe Unterschiede bei Where.
      Eine Nebenfrage: wie viele MySQL-Abfragen sollte man beim Programmieren sich als Höchstwert setzen?

      Kommentar


      • #4
        Original geschrieben von geugen
        Eine Nebenfrage: wie viele MySQL-Abfragen sollte man beim Programmieren sich als Höchstwert setzen?
        So viele, wie nötig sind... Auf guten Servern (und guten DBMS) rennen die Queries so schnell, dass die nur einen kleinen Anteil der tatsächlichen Laufzeit des Scriptes ausmachen.

        Dateisystemoperationen usw. sind da wesentlich langsamer. Daher würde ich dir empfehlen, die Queries einzeln abzusetzen, wenn du sie nicht aufgrund der "Fast-Gleichheit" der Bedingungen zusammnfassen kannst.

        Kommentar


        • #5
          Danke für die schnellen Antworten

          Kommentar

          Lädt...
          X