bleumel Posted October 10, 2017 Share Posted October 10, 2017 Moin, ich bin nicht firm im Erstellen von SQL Abfragen. Grundzüge "verstehe" ich, leider nicht das zusammenbringen von verschiedenen Tabellen. Ich benötige: Bestelldatum Bestellnummer Kunden-Emailadresse Kunden Vorname Kunden Nachname Im Grunde reicht mir schon die fertige Abfrage in der Bestellübersicht, wenn ich noch die Emailadresse dazu bekommen könnte. In der Abfrage habe ich auch die Tabelle ps_customer gefunden. Allerdings gelingt mir die Verknüpfung in der Abfrage nicht. Da man die Tabellen und deren Felder per Mausklick hinzufügen kann, dürfte es eigentlich keine große Sache sein, .......wenn man weiß was man tut.... :-/ Vielleicht weiß jemand Rat für mich. Danke im Voraus. Micha Link to comment Share on other sites More sharing options...
bleumel Posted October 11, 2017 Author Share Posted October 11, 2017 So schaut die vorgefertigte Abfrage bei den Bestellungen aus: SELECT SQL_CALC_FOUND_ROWS a.`id_order`, `reference`, `total_paid_tax_incl`, `payment`, a.`date_add` AS `date_add` , a.id_currency, a.id_order AS id_pdf, CONCAT(LEFT(c.`firstname`, 1), '. ', c.`lastname`) AS `customer`, osl.`name` AS `osname`, os.`color`, IF((SELECT so.id_order FROM `ps_orders` so WHERE so.id_customer = a.id_customer AND so.id_order < a.id_order LIMIT 1) > 0, 0, 1) as new, country_lang.name as cname, IF(a.valid, 1, 0) badge_success FROM `ps_orders` a LEFT JOIN `ps_customer` c ON (c.`id_customer` = a.`id_customer`) LEFT JOIN `ps_address` address ON address.id_address = a.id_address_delivery LEFT JOIN `ps_country` country ON address.id_country = country.id_country LEFT JOIN `ps_country_lang` country_lang ON (country.`id_country` = country_lang.`id_country` AND country_lang.`id_lang` = 2) LEFT JOIN `ps_order_state` os ON (os.`id_order_state` = a.`current_state`) LEFT JOIN `ps_order_state_lang` osl ON (os.`id_order_state` = osl.`id_order_state` AND osl.`id_lang` = 2) WHERE 1 ORDER BY a.`id_order` DESC füge ich die Abfrage 'email' ein, erhalte ich die Fehlermeldung, dass diese in der Tabelle ps_orders nicht vorhanden ist. Das macht Sinn. Wo aber füge ich denn die Abfrage / Verknüpfung zur Tabelle ps_customer ein? Egal wo, erhalte ich zwar keine Fehlermeldung, aber eine leere Auswertung. Hm.... Eigentlich gibt es in der Abfrage ja schon die Verknüpfung, Kunden ID wird ja auch ausgeworfen. Ich verstehe leider nicht, wo ich den Bezug 'email' setzen muss. Weiß jemand Rat? Link to comment Share on other sites More sharing options...
Scully Posted October 12, 2017 Share Posted October 12, 2017 Wenn Du das richtig einfügst, dann würde es schon klappen: SELECT SQL_CALC_FOUND_ROWSc.email, a.`id_order`, `reference`, `total_paid_tax_incl`, `payment`, a.`date_add` AS `date_add` ... Der Präfix c. ist nicht zwingend, da das Feld nur einmal vorkommt in all den referenzierten Tabellen. 1 Link to comment Share on other sites More sharing options...
bleumel Posted October 16, 2017 Author Share Posted October 16, 2017 Super. Hat geklappt. Vielen Dank!!! Link to comment Share on other sites More sharing options...
Sagaris Posted November 19, 2017 Share Posted November 19, 2017 Ich hätte auch interesse an so einer Abfrage, habe aber von SQL keine Ahnung. Wo und wie kann ich so eine Abfrage generieren? Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now