Vorteile von JOINS

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

  • Vorteile von JOINS

    Hallo Board,

    was genau sind die Vorteile/Nachteile von JOINS?
    Ich meine man kann doch aus jeder Abfrage, die über mehr als 2 Tabellen geht eine JOIN Abfrage machen.
    Pickel ? Übergewicht ? Depressionen ?
    Brot, Kartoffeln und Milch sind Gift!
    http://www.paleofood.de

  • #2
    Blubb, geh suchen :P

    Also wenn du 2 Tabellen ohne Join abfrägst, wird das karthesiche produkt gebildet, d.h. es wird jede mögliche kombination der beiden Tabellen gebildet, bei 100 und 500 zeilen wären das schon 50k zeilen...

    Bei join wird vorher schon eingerenzt, welche zeilen in frage kommen

    es ist eine frage der performance und der optimalen ressourcen verteilung

    wobei neue mysql versionen aber aus einer normalen verknüpfung schon einen join machen und dies so optimieren...

    steht irgendwo im manual


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

    Kommentar


    • #3
      Original geschrieben von MaxP0W3R
      Bei join wird vorher schon eingerenzt, welche zeilen in frage kommen

      es ist eine frage der performance und der optimalen ressourcen verteilung
      Na eben sag ich doch. Also warum nicht IMMER JOINS verwenden bei mehr als einer Tabelle ?

      Werden bein kartesischen Produkt dann eigentlich auch die doppelten Zeilen mitgerechnet wie in deiner Rechnung ?

      Also

      1 x 1
      1 x 2
      2 x 1
      2 x 2


      Wären 1 x 2 und 2 x 1 das selbe ?
      Zuletzt geändert von antman; 11.10.2004, 16:32.
      Pickel ? Übergewicht ? Depressionen ?
      Brot, Kartoffeln und Milch sind Gift!
      http://www.paleofood.de

      Kommentar


      • #4
        Wer benutzt den keine Joins ? Wie kommst du auf diese Frage ?

        In keinem der vielen Skripte die ich bisher durchgesehen habe, wurden keine Joins für Abfragen über mehrere tabellen verwendet...


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

        Kommentar


        • #5
          Original geschrieben von MaxP0W3R
          Wer benutzt den keine Joins ? Wie kommst du auf diese Frage ?

          In keinem der vielen Skripte die ich bisher durchgesehen habe, wurden keine Joins für Abfragen über mehrere tabellen verwendet...
          Doppelte Verneinung heißt also: In allen Skripten wurden immer JOINS verwendet ? Ich habe schon sehr oft Abfragen über 2 Tabellen gesehen ohne JOINS.
          Pickel ? Übergewicht ? Depressionen ?
          Brot, Kartoffeln und Milch sind Gift!
          http://www.paleofood.de

          Kommentar


          • #6
            ja , von irgendwelchen skript kiddies :P

            oder zeig mir mal ein ernsthaftes projekt, dass tabellen wild abfrägt...


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

            Kommentar


            • #7
              Was meinst du mit wild ?
              Pickel ? Übergewicht ? Depressionen ?
              Brot, Kartoffeln und Milch sind Gift!
              http://www.paleofood.de

              Kommentar


              • #8
                select abc.*, def.* FROM abc, def

                Also quasi komplette abfrage, auswertung im skript, und vor allem dass alle spalten abgefragt werden aber sicher nicht benutzt werden

                Das wäre für mich wild.



                Besser wäre sowas wie

                SELECT abc.wichtig_id, abc.wichtig_name,
                def.dazu_wichtig
                FROM abc
                LEFT JOIN def
                ON abc.wichtig_id = def.wichtig_id
                WHERE abd.anderes_feld = Wert


                cya max


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

                Kommentar


                • #9
                  1 x 1
                  1 x 2
                  2 x 1
                  2 x 2


                  Wären 1 x 2 und 2 x 1 das selbe ?
                  nö! wären haus blau und auto rot bei

                  haus rot
                  haus blau
                  auto rot
                  auto blau

                  das selbe?

                  Kommentar


                  • #10
                    zur ursprünglichen Frage:

                    Wenn in eine Abfrage mehrere Tabellen eingebunden werden können diese in der FROM-Klausel per JOIN oder in der WHERE-Klausel durch gleichsetzen bestimmter Feld verknüpft werden. Vor- und Nachteile zu diskutieren geht m.E. schon etwas tiefer in die Welt der Datenbanken ...

                    In bestimmten Fällen ist die Bildung des kartesisches Produkt aber gewollt. Daher sind natürlich auch Abfragen über mehr als eine Tabelle ohne Join zu sehen. Als ein Beispiel sei hier NestedSets genannt (bei Bedarf bitte in die Tuts schauen).

                    Gruß
                    Patrick

                    Kommentar


                    • #11
                      Original geschrieben von Patrick_PQ
                      In bestimmten Fällen ist die Bildung des kartesisches Produkt aber gewollt. Daher sind natürlich auch Abfragen über mehr als eine Tabelle ohne Join zu sehen.
                      Das habe ich (und IMHO goth auch) schon mehr als einmal gesagt, aber diese Newbies hören ja nur das, was sie hören wollen. Laß sie doch mit ihrer Illusionen.

                      Kommentar


                      • #12
                        @asp2php: ich hatte gerade meine sozialen fünf Minuten - da beantworte ich dann alles was mir vor die Flinte kommt - sofern ich kann ...

                        nein, Spaß beiseite. Die Frage klang ja recht interessiert und offensichtlich hat er ja darüber nachgedacht. Und manchmal erinnere ich mich an meine Anfänge mit Datenbanken und wie schwierig die ersten Schritte doch seien können ...

                        Kommentar

                        Lädt...
                        X