COUNT über zwei Tabellen?

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

  • COUNT über zwei Tabellen?

    Hi

    Ist dies irgendwie möglich? Ich möchte die 10 einträge mit der höchsten Anzahl.

    Ich hatte dies:

    PHP-Code:
    SELECT COUNT(*) as anz FROM history1 GROUP BY prodnr ORDER BY anz DESC LIMIT 10 
    Nun möchte ich dies aber von zweitabellen EINE auslese haben.

    Also ich habe das selbe noch in der history2.
    Kann ich nun irgendwie dies machen das er mir die 10 Einträge ausgibt mit der höchsten Anzahl? Also dass er beide Tabellen beachtet?

    GRuss

    kari_w

  • #2
    erstens ist count() hier fehl am platze und zweites ist das kein php-problem.

    *VERSCHIEB*
    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
      Ich nehme an, Du meinst die 10 Höchstwerte einer bestimmten Spalte. Nehmen wir an, diese heißt "anzahl", dann sieht das ganze so aus:

      PHP-Code:
      SELECT anzahl FROM history1 ORDER BY anzahl DESC LIMIT 10 
      ... die Höchstwerte von zwei Tabellen via mySQL zu kriegen geht vielleicht mit irgendeinem JOIN; Einfacher gehts mit PHP: history1 mit Limit 5 abfragen, history2 ebenso, beide Ergebnisse in ein und dasselbe Array packen, Array sortieren (Mit besonderer Beachtung von ARRAY_NUMERIC), fertig.

      Kommentar


      • #4
        Original geschrieben von pekka
        Einfacher gehts mit PHP: history1 mit Limit 5 abfragen, history2 ebenso
        wenn du in tabelle1 die zahlen: 75 74 73 72 71 70 69 hast und in tabelle2: 18 17 16 15 14 13 12 11

        dann bekommst du: 75 74 73 72 71 18 17 16 15 14
        gewünscht ist aber glaube ich: 75 74 73 72 71 70 69 18 17 16


        da geht evtl. in sql was mit JOINs, aber warum hast du denn zwei tabellen, kannst du die nicht irgendwie kombinieren?

        EDIT:
        korrigiert
        Zuletzt geändert von mrhappiness; 12.09.2004, 08:50.
        Ich denke, also bin ich. - Einige sind trotzdem...

        Kommentar


        • #5
          Original geschrieben von mrhappiness
          wenn du in tabelle1 die zahlen: 75 74 73 72 71 70 69 hast und in tabelle2: 18 17 16 15 14 13 12 11

          dann bekommst du: 75 74 73 72 71 18 17 16 15 14
          gewünscht ist aber glaube ich: 75 74 73 72 71 70 18 17 16 15
          OffTopic:
          wo ist denn 69 geblieben

          Kommentar


          • #6
            Original geschrieben von asp2php
            OffTopic:
            wo ist denn 69 geblieben
            OffTopic:
            69 gibt's noch nicht vormittags, zuviel kleine kinder...

            ernsthaft: hab ich in meinem textfeld irgendwie überlesen, ist wohl noch zu früh für mich
            Ich denke, also bin ich. - Einige sind trotzdem...

            Kommentar


            • #7
              wenn du in tabelle1 die zahlen: 75 74 73 72 71 70 69 hast und in tabelle2: 18 17 16 15 14 13 12 11 [...]
              Hast natürlich recht. Denkfehler.
              Geht aber mit 2 x LIMIT 10 - Array erzeugen, sortieren und dann die ersten 10 Ausgeben.
              Zuletzt geändert von pekka; 12.09.2004, 12:48.

              Kommentar


              • #8
                Code:
                (
                  SELECT 
                    schnulli
                  FROM 
                    tab1
                )
                
                UNION
                
                (
                  SELECT 
                    schnulli
                  FROM 
                    tab2
                )
                
                ORDER BY 
                  pos DESC
                LIMIT 
                  10
                Zuletzt geändert von derHund; 12.09.2004, 14:24.
                Die Zeit hat ihre Kinder längst gefressen

                Kommentar

                Lädt...
                X