Ich versthe joins nicht

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

  • Ich versthe joins nicht

    Hi, folgende Sache

    Tabelle 1 : id, name, url

    Dort sind der Name eines Links und die URL eines links eingetragen

    tabelle 2 : id, linkid, referer, zeit

    id ist auto_increment, linkid die id des Linkes, referer das was im referer stand bzw leer, zeit ist timestamp.
    Bis jetzt kann ich die 1. tabelle sortieren nach id, name und url.
    Und bei der Sortierung mache ich jedesmal eine abfrage wie oft geklickt wurde.

    Jetz will ich aber auch nach klicks sortieren, d.h. ich muss bei der abfrage der ersten tabelle auch die 2. tabelle abfragen wie oft geklickt wurde und dann nach dieser anzahl sortieren lassen.

    sehr komplizitert.

    Ich hab auf mysql.de gestöbert, im handbuch von PHP 4 von Jörg Krause und den festgetackerten Thread gelesen von mrhappiness, aber die Beispiele haben mir nicht erklärt wie das ganze funzen soll.

    Kann mir einer sagen wie das geht mit joins oder wo ich ein gutes(!) Tutorial herbekommen, in dem wirjlich erklärt ist wie das funktioniert.
    Ich hab vor allem das problem wie ich das sortieren soll, order by count() oder so ?

    thx 4 help

    cya max


    An mich bitte keine unaufgeforderten E-Mails senden (ausser ihr seid bereit geld zu zahlen, dann gerne )

  • #2
    ich verstehe jetzt nicht was du nicht verstanden hast klicks kann ich bei deinem aufbau auch nicht sehen. dafür sehe ich dass du in zwei tabellen den selben spaltennamen verwendest. das ist zu gut deutsch scheisse
    h.a.n.d.
    Schmalle

    http://impressed.by
    http://blog.schmalenberger.it



    Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
    ... nur ohne :-)

    Kommentar


    • #3
      beispiel ohne JOIN(t).
      Code:
      SELECT COUNT(*) menge, name FROM tabelle GROUP BY name ORDER BY menge DESC
      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


      • #4
        OffTopic:
        @häxchen falscher film?
        h.a.n.d.
        Schmalle

        http://impressed.by
        http://blog.schmalenberger.it



        Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
        ... nur ohne :-)

        Kommentar


        • #5
          Original geschrieben von schmalle
          OffTopic:
          @häxchen falscher film?

          nö. eigentlich nicht.

          Original geschrieben von MaxP0W3R
          Ich hab vor allem das problem wie ich das sortieren soll, order by count() oder so ?
          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


          • #6
            Also, das ganze ist ein Counter für Links und Banner auf meiner Website

            in der Tabelle 1 gibs id, name und url

            dort stehen name und url für jeden Banner

            klick ich auf einen banner wird ein skript aufgerufen : counter?id=10

            dann schaut counter.php nach id 10, holt sich die url und ruft die seite auf, und trägt einen Klick in tabelle 2 ein

            tabelle 2 hat ne id (eigentlich überflüssig), link id , rubrik und zeit

            in linkid steht die id des banners der geklickt wurde, in rubrik der referer ider halt leer, in zeit der teimestamo

            jetzt möchte ich alle banner anzeigen lassen, sortiert nach anzahl der klicks

            Ich muss dazu also daten aus 2 tabellen lesen, und zwar muss quasi eine temporäre tabelle erstellt werden, die aus tabelle 1 name und url ausliest und aus tabelle 2 anzahl der klicks für diesen banner.

            kann ich das mit join und on lösen oder soll ich echt ne eigene temporäre tabelle erstellen, die die anzahl der klicks einträgt und dann sortieren lassen ?


            und das krieg ich nicht hin.


            An mich bitte keine unaufgeforderten E-Mails senden (ausser ihr seid bereit geld zu zahlen, dann gerne )

            Kommentar


            • #7
              kann ich

              select t1.a, t1.b, count(t2.a) from t1,t2 order by count(t2.a) machen ?


              An mich bitte keine unaufgeforderten E-Mails senden (ausser ihr seid bereit geld zu zahlen, dann gerne )

              Kommentar


              • #8
                das steht doch schon alles da.


                SELECT COUNT(t2.bannerid) menge, t2.bannername, t1.name FROM t2
                INNER JOIN t1 ON t2.bannerid = t1.bannerid
                GROUP BY t2.bannername, t1.name
                ORDER BY menge DESC
                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


                • #9
                  Original geschrieben von MaxP0W3R
                  kann ich

                  select t1.a, t1.b, count(t2.a) from t1,t2 order by count(t2.a) machen ?
                  warumk probierst du sowas nciht einfach mal aus?
                  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


                  • #10
                    Code:
                    SELECT
                     t1.name, t1.url, COUNT(t2.id) anzahl
                    FROM
                      tabelle1 t1
                      LEFT JOIN tabelle t2 ON t1.id = t2.linkid
                    GROUP BY
                      t1.name, t1.url
                    ORDER BY anzahl
                    du meinst nicht zufällig sowas?


                    wenn doch, dann fühle dich verbal geohrfeigt, weil dir die möglichkeit des adaptierens eins simplen beispiels auf eine simple aufgabe fehlt
                    Ich denke, also bin ich. - Einige sind trotzdem...

                    Kommentar


                    • #11
                      OffTopic:
                      Original geschrieben von mrhappiness
                      du meinst nicht zufällig sowas?
                      abschreiber....
                      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


                      • #12
                        dafür krieg ich auch die noch nie angeklickten...
                        Ich denke, also bin ich. - Einige sind trotzdem...

                        Kommentar


                        • #13
                          Original geschrieben von mrhappiness
                          dafür krieg ich auch die noch nie angeklickten...
                          OffTopic:
                          armes tüt tüt
                          kann doch keiner was dafür, dass du so langsam bist
                          h.a.n.d.
                          Schmalle

                          http://impressed.by
                          http://blog.schmalenberger.it



                          Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
                          ... nur ohne :-)

                          Kommentar


                          • #14
                            habs fast


                            thx 4 help


                            An mich bitte keine unaufgeforderten E-Mails senden (ausser ihr seid bereit geld zu zahlen, dann gerne )

                            Kommentar


                            • #15
                              Original geschrieben von mrhappiness
                              dafür krieg ich auch die noch nie angeklickten...
                              Es sollen alle angezeigt werden.
                              Auch die mit Null, kann ja sein dass ich den Link ändenr will oder den namen oder es löschen...

                              EDIT :


                              So, HURRA es funktioniert ^^, ich denke ich hab jetzt wein wenig JOINs und GROUP BY gelesen, und akzeptiere diese verbale Ohrfeige ^^
                              Zuletzt geändert von MaxP0W3R; 23.03.2004, 15:04.


                              An mich bitte keine unaufgeforderten E-Mails senden (ausser ihr seid bereit geld zu zahlen, dann gerne )

                              Kommentar

                              Lädt...
                              X