Je vous explique mon problème ...
J'ai une BDD dont je ne maitrise pas la création et modification des champs (PRESTASHOP pour ne pas la citer) dont un des champs d'une table vient d'être renommé et cela me pose un problème sur les jointures.
En effet, le champ donné existe mais porte soit le nom id_tax soit le nom id_tax_rules_group (en fonction de la version de prestashop)
Un extrait de ma requête ...
Le problème est sur le champ en gras qui fait partie d'un LEFT JOIN.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 SELECT o.id_order, o.invoice_date, o.id_customer, c.id_gender, ad.lastname, ad.firstname, ad.company, c.birthday, ad.phone_mobile, c.email, ad.address1, ad.address2, ad.city, ad.postcode, cadl.name, ad.phone, ai.address1 AS delivery_address1, ai.address2 AS delivery_address2, ai.city AS delivery_city, ai.postcode AS delivery_postcode, cail.name AS delivery_name, o.payment, cu.name AS currency, o.total_products, o.total_paid_real, IFNULL(o.total_products_wt, o.total_paid) as total_products_wt, o.total_shipping, o.date_add, o.delivery_info, ca.name AS shipping_method, IFNULL(t.rate, 0) AS shipping_rate FROM psf_orders AS o, psf_customer AS c, psf_address AS ad, psf_address AS ai, psf_country AS cad, psf_country AS cai, psf_country_lang AS cadl, psf_country_lang AS cail, psf_currency AS cu, psf_order_history AS oh, psf_order_state AS os, psf_order_state_lang AS osl, psf_carrier AS ca LEFT JOIN psf_tax AS t ON (ca.id_tax_rules_group = t.id_tax) WHERE o.id_address_invoice = ad.id_address AND ad.id_country = cad.id_country ...
J'ai essayé en testant l'existence du champ avec :
qui retourne bien 1 enregistrement si le champ est nommé de cette manière et 0 s'il n'existe pas, mais je n'arrive pas à traiter ce résultat dans l'idée d'un IF(resultat show_columns =1,'id_tax_rules_group','id_tax')
Code : Sélectionner tout - Visualiser dans une fenêtre à part SHOW COLUMNS FROM psf_tax_rules_group LIKE 'id_tax_rules_group'
Si quelqu'un a un idée, j'ai passé plusieurs heures dessus, et ne trouve pas de solutions :-(
Merci par avance.
Partager