Hallo liebes Paradise Team,
ich arbeite aktuell an einer SQL Abfrage die mir den letzten Nerv raubt, da ich keine Ahnung habe wie ich das Vernünftig lösen soll.
Ich versuche die Situation mal zu schildern:
Gegeben sind 2 Tabellen:
tbl_bw_art (Artikelstammdaten)
tbl_bw_ada (Adress/Artikel Stammdaten -> Hier stehen Preise bzw. Konditionen für die Artikel aus tbl_bw_art drin, basierend auf Adressnummern)
tbl_bw_art sieht so aus:
tbl_bw_ada sieht so aus:
Es muss nicht zwangsläufig für jeden Artikel in tbl_bw_art ein Datensatz in tbl_bw_ada vorkommen.
Die Ausgangstabelle die ich gerne hätte soll so aussehen:
(In jedem Fall muss also die tbl_bw_art komplett ausgegeben werden, egal ob ein Preis in tbl_bw_ada gefunden wurde oder nicht -> Also Left Join)
Ich hoffe der Aufbau ist verständlich genug
Leider endet hier auch schon meine Kenntnis. Ich habe keine Ahnung wie ich mir diese Ausgangstabelle zusammenbauen könnte.
Klar ist das ich ein "Left join" nehmen muss, damit ich auf jeden Fall alle Artikel in der Ausgangstabelle angezeigt bekomme aber ich weiss partou nicht wie ich den Left Join aufbauen muss.
Geschweige denn wie ich die zusätzlichen Spalten für die Preise kreieren kann!? Temporäre SQL Tabelle!?
Klar könnte ich jetzt beide Tabellen in eine Datatable laden und von dort über eine Schleife alle Datensätze so verknüpfen wie ich sie bräuchte aber am ende stehen in der tbl_bw_art ca. 40000 Datensätze drin und in der tbl_bw_ada ca. 200000.
Da würde eine Schleife viel zu lange dauern und das wäre total unelegant. Zumal ich das ganze am Ende noch mit einer Suche verknüpfen muss .
Deshalb wollte ich die Abfrage und die Zusammensetzung der Tabelle am besten direkt über eine SQL-Abfrage lösen (Mysql).
Eventuell kann mir ja jemand von den Experten hier helfen
Vielen Dank schonmal
ich arbeite aktuell an einer SQL Abfrage die mir den letzten Nerv raubt, da ich keine Ahnung habe wie ich das Vernünftig lösen soll.
Ich versuche die Situation mal zu schildern:
Gegeben sind 2 Tabellen:
tbl_bw_art (Artikelstammdaten)
tbl_bw_ada (Adress/Artikel Stammdaten -> Hier stehen Preise bzw. Konditionen für die Artikel aus tbl_bw_art drin, basierend auf Adressnummern)
tbl_bw_art sieht so aus:
Artikelnummer (Pi) | Lieferant1 | Lieferant2 | Lieferant3 |
102640 | 732010 | 738510 | 702850 |
103050 | 738510 | 732010 | 702850 |
102960 | 732010 |
tbl_bw_ada sieht so aus:
id (Pi) | Adressnummer | Artikelnummer | Preis |
732010.102640 | 732010 | 102640 | 500 |
732010.103050 | 732010 | 103050 | 400 |
738510.102640 | 738510 | 102640 | 200 |
738510.103050 | 738510 | 103050 | 700 |
Es muss nicht zwangsläufig für jeden Artikel in tbl_bw_art ein Datensatz in tbl_bw_ada vorkommen.
Die Ausgangstabelle die ich gerne hätte soll so aussehen:
Artikelnummer | Lieferant1 | Preis Lieferant1 | Lieferant2 | Preis Lieferant2 | Lieferant3 | Preis Lieferant3 |
102640 | 732010 | 500 | 738510 | 200 | 702850 | |
103050 | 738510 | 700 | 732010 | 400 | 702850 | |
102690 | 732010 |
(In jedem Fall muss also die tbl_bw_art komplett ausgegeben werden, egal ob ein Preis in tbl_bw_ada gefunden wurde oder nicht -> Also Left Join)
Ich hoffe der Aufbau ist verständlich genug
Leider endet hier auch schon meine Kenntnis. Ich habe keine Ahnung wie ich mir diese Ausgangstabelle zusammenbauen könnte.
Klar ist das ich ein "Left join" nehmen muss, damit ich auf jeden Fall alle Artikel in der Ausgangstabelle angezeigt bekomme aber ich weiss partou nicht wie ich den Left Join aufbauen muss.
Geschweige denn wie ich die zusätzlichen Spalten für die Preise kreieren kann!? Temporäre SQL Tabelle!?
Klar könnte ich jetzt beide Tabellen in eine Datatable laden und von dort über eine Schleife alle Datensätze so verknüpfen wie ich sie bräuchte aber am ende stehen in der tbl_bw_art ca. 40000 Datensätze drin und in der tbl_bw_ada ca. 200000.
Da würde eine Schleife viel zu lange dauern und das wäre total unelegant. Zumal ich das ganze am Ende noch mit einer Suche verknüpfen muss .
Deshalb wollte ich die Abfrage und die Zusammensetzung der Tabelle am besten direkt über eine SQL-Abfrage lösen (Mysql).
Eventuell kann mir ja jemand von den Experten hier helfen
Vielen Dank schonmal