Plz Join

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

  • Plz Join

    Hi Leute,

    Ich tüftle jetzt schon ewig an einer Abfrage über 4 Tabellen herum... im Prinzip geht alles mit INNER JOINS ganz gut, leider gehen mir ein paar Datensätze verloren...

    das Problem ist dass meine PLZ Tabelle nicht ganz vollständig ist, durch den JOIN werden also sämtliche Daten gekickt, wo in meiner PLZ Tabelle kein Eintrag ist...

    wie schaffe ich es dass die Datensätze trotzdem da bleiben und falls in der PLZ keine Zuordnung ist, dann möge er die Spalten "BUNDESLAND" usw. einfach leer lassen... ich habe es jetzt schon mit LEFT JOINS bzw. RIGHT JOINS probiert... klappt leider irgendwie nicht.

    Anbei meine Abfrage:

    Code:
    SELECT 
    	JP.VRENUM,
    	JP.ADDR_ID,
    	J.RDATUM,
    	DATE_FORMAT(J.RDATUM, '%d.%m.%y') AS DATUM_NEU,
    	AD.KUNNUM1,
    	AD.NAME1,
    	AD.STRASSE,
    	AD.PLZ,
    	AD.ORT,
    	AD.LAND,
    	AD.EMAIL,
    	AD.LAND,
    	A.KURZNAME,
    	A.ARTNUM,
    	A.DIMENSION,
    	A.WARENGRUPPE,
    	P.BUNDESLAND,
    	P.LON,
    	P.LAT,
    	A.VK5B
    
    FROM 
    	JOURNAL AS J
    	INNER JOIN (JOURNALPOS AS JP 
    	INNER JOIN ARTIKEL AS A 
    	ON JP.ARTIKEL_ID = A.REC_ID) 
    	ON J.REC_ID = JP.JOURNAL_ID AND J.QUELLE = 3 AND JP.QUELLE = 3 
    			 
    	INNER JOIN (ADRESSEN AS AD 
    	INNER JOIN PLZ AS P 
    	ON AD.PLZ = P.PLZ AND AD.LAND = P.LAND) 
    	ON JP.ADDR_ID = AD.REC_ID 
    			 
    GROUP BY JP.ADDR_ID
    ORDER BY J.RDATUM DESC
    Bitte um Hilfe - wäre super!

    Danke
    LG
    Wunki

  • #2
    Was geht denn bei LEFT JOIN und RIGHT JOIN nicht? Die wären hier beide richtig.

    Kommentar


    • #3
      hi, also ich habe folgende probiert...

      I.

      Code:
      FROM 
      	JOURNAL AS J
      	INNER JOIN (JOURNALPOS AS JP 
      	INNER JOIN ARTIKEL AS A 
      	ON JP.ARTIKEL_ID = A.REC_ID) 
      	ON J.REC_ID = JP.JOURNAL_ID AND J.QUELLE = 3 AND JP.QUELLE = 3 
      			 
      	INNER JOIN (ADRESSEN AS AD 
      	LEFT JOIN PLZ AS P 
      	ON AD.PLZ = P.PLZ AND AD.LAND = P.LAND) 
      	ON JP.ADDR_ID = AD.REC_ID
      Da dauert die Abfrage ewig und dann bekomme ich zig Datensätze die alle den gleichen Ortsnamen haben...

      II.

      Code:
      FROM 
      	JOURNAL AS J
      	INNER JOIN (JOURNALPOS AS JP 
      	INNER JOIN ARTIKEL AS A 
      	ON JP.ARTIKEL_ID = A.REC_ID) 
      	ON J.REC_ID = JP.JOURNAL_ID AND J.QUELLE = 3 AND JP.QUELLE = 3 
      			 
      	INNER JOIN (ADRESSEN AS AD 
      	RIGHT JOIN PLZ AS P 
      	ON AD.PLZ = P.PLZ AND AD.LAND = P.LAND) 
      	ON JP.ADDR_ID = AD.REC_ID
      .. hier bekomme ich komischerweise genau dasselbe ergebnis wie bei INNER JOIN

      Ich glaub irgendwie dass dieser Teil Schuld sein könnte -> AND AD.LAND = P.LAND ... " das blöde ist nur dass die Schweiz und Österreich manchmal gleiche PLZ haben und somit wäre ein Schmarrn zugeordnet.

      Könntest du mir ev. ein kurzen Vorschlag bei den JOins zeigen, dann kann ichs durchlaufen lassen... oder ich steh so dermassen am Schlauch, dass mir auch nicht mehr zu helfen wäre


      danke

      Kommentar


      • #4
        ja des musst du entscheiden, was du in deinem resultat haben willst!

        mit left join werden alle datensätze der linken tabelle (sozusagen) beibehalten und nur, wenn vorhanden die rechte tabelle verknüpft!

        bei right join ist das das gleiche, nur mit der rechten tabelle eben!
        Find Parties?
        Partysuche

        Kommentar

        Lädt...
        X