mehere Tabellen verbinden



  • Hey leute,
    folgendes ich will bzw. muss 3 Tabellen miteinader verbinden. Ich hab es so in einem Buch gefunden nur das klappt nicht weil er nen Operator zwischen den Join's haben will.

    SELECT k.kunden , k.name , b.bestelldatum , p.artikel_nr
    FROM kunden AS k
               INNER JOIN bestellung AS b ON b.kunden_nr = k.kunden_nr 
               INNER JOIN position     AS p ON p.bestell_nr = b.bestell_nr
    GROUP BY k.kunden_nr , bestelldatum;
    


  • SELECT k.kunden , k.name, b.bestell_nr, b.bestelldatum, b.kunden_nr, p.artikel_nr, p.bestell_nr 
    FROM kunden AS k,bestellung AS b,position AS p 
    WHERE b.kunden_nr = k.kunden_nr AND p.bestell_nr = b.bestell_nr 
    GROUP BY k.kunden_nr , bestelldatum;
    

    warum nicht so ?



  • weil das ne Übung zu join ist



  • hmm naja trotz allem solltest du alle felder die du verwendest auch angeben 🙄

    😋 😋



  • mosta schrieb:

    Hey leute,
    folgendes ich will bzw. muss 3 Tabellen miteinader verbinden. Ich hab es so in einem Buch gefunden nur das klappt nicht weil er nen Operator zwischen den Join's haben will.

    SELECT k.kunden , k.name , b.bestelldatum , p.artikel_nr
    FROM kunden AS k
               INNER JOIN bestellung AS b ON b.kunden_nr = k.kunden_nr 
               INNER JOIN position     AS p ON p.bestell_nr = b.bestell_nr
    GROUP BY k.kunden_nr , bestelldatum;
    

    Mit was arbeitest du? mysql?
    Momentan fällt mir jetzt auch nichts auf...

    1ntrud0r schrieb:

    SELECT k.kunden , k.name, b.bestell_nr, b.bestelldatum, b.kunden_nr, p.artikel_nr, p.bestell_nr 
    FROM kunden AS k,bestellung AS b,position AS p 
    WHERE b.kunden_nr = k.kunden_nr AND p.bestell_nr = b.bestell_nr 
    GROUP BY k.kunden_nr , bestelldatum;
    

    warum nicht so ?

    laaahm... 🙂
    Wenn man es so macht, macht er erst einen ganz normalen Cross Join, und filtert dann die Datensätze raus... wenn man Joins benutzt fragt er wirklich nur die Datensätze ab, die man braucht...


Anmelden zum Antworten