Jump to content

SQL Abfrage: Bestellung mit Kundenemailadresse


bleumel

Recommended Posts

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

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

Wenn Du das richtig einfügst, dann würde es schon klappen:

 

SELECT SQL_CALC_FOUND_ROWS
c.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.

  • Like 1
Link to comment
Share on other sites

  • 1 month later...

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...