Hallo,
ich möchte eine Abfrage über mehrere Tabellen machen, die verknüpft sind.
Irgendwie bekomme ich die Zuordnung von der Tabelle nicht hin.
Es soll aus s_order_shippingaddress
.CountryID
AS Kun_LAND
mirt ausgegeben werden, aber das LEFT JOIN funktioniert nicht, ich bekomme als Ergebnis „NULL“.
SELECT `s_order`.`id` AS `orderID` , `s_order_documents`.`docID` AS `Rechnungsnummer` , FORMAT( `s_order`.`invoice_amount`, 2,'de_DE' ) AS `Rechnungsbetrag` , FORMAT( `s_order`.`invoice_amount_net`, 2,'de_DE' ) AS `Nettobetrag` , `s_order_documents`.`date` AS `Rechnungsdatum` , `s_order`.`taxfree` , `s_order`.`currency` ,`s_order_shippingaddress`.`CountryID` AS `Kun_LAND`
FROM `s_order_documents`
LEFT JOIN `s_order` ON ( `s_order_documents`.`orderID` = `s_order`.`id` )
LEFT JOIN `s_core_paymentmeans` ON ( `s_order`.`paymentID` = `s_core_paymentmeans`.`id` )
LEFT JOIN `s_order_shippingaddress` ON ( `s_order`.`id` = `s_order_shippingaddress`.`id` )
WHERE `date` BETWEEN '2020-01-01' AND '2020-12-31'
An Deinem Statement liegt’s aber nicht. Wenn ich das auf meinen Daten anwende, krieg ich eine prima Liste …
Check mal Deine DB. Veraltet? Keine Daten von 2020 … ?
doch, ich bekomme ein Ergebnis, aber die Spalte CountryID ist leer, weil da nichts kommt.
Verstehe. Das wäre dann richtig:
SELECT `s_order`.`id` AS `orderID` , `s_order_documents`.`docID` AS `Rechnungsnummer` , FORMAT( `s_order`.`invoice_amount`, 2,'de_DE' ) AS `Rechnungsbetrag` , FORMAT( `s_order`.`invoice_amount_net`, 2,'de_DE' ) AS `Nettobetrag` , `s_order_documents`.`date` AS `Rechnungsdatum` , `s_order`.`taxfree` , `s_order`.`currency` ,`s_order_shippingaddress`.`CountryID` AS `Kun_LAND`
FROM `s_order_documents`
LEFT JOIN `s_order` ON ( `s_order_documents`.`orderID` = `s_order`.`id` )
LEFT JOIN `s_core_paymentmeans` ON ( `s_order`.`paymentID` = `s_core_paymentmeans`.`id` )
LEFT JOIN `s_order_shippingaddress` ON ( `s_order`.`id` = `s_order_shippingaddress`.`orderID` )
WHERE `date` BETWEEN '2020-01-01' AND '2020-12-31'
Du hattest id gewählt, muss aber orderID heißen.
Super, Danke das war der Fehler