J'exécute cette requête SQL:
SELECT wp_woocommerce_order_items.order_id As No_Commande
FROM wp_woocommerce_order_items
LEFT JOIN
(
SELECT meta_value As Prenom
FROM wp_postmeta
WHERE meta_key = '_shipping_first_name'
) AS a
ON wp_woocommerce_order_items.order_id = a.post_id
WHERE wp_woocommerce_order_items.order_id =2198
Et je reçois cette erreur:
# 1054 - Colonne inconnue 'a.post_id' dans 'on clause'.
Je pense que mon code est assez simple, mais je ne peux pas le corriger. Qu'est-ce que je fais mal?
Vous n'avez pas sélectionné post_id
dans la sous-requête. Vous devez le sélectionner dans la sous-requête comme ceci:
SELECT wp_woocommerce_order_items.order_id As No_Commande
FROM wp_woocommerce_order_items
LEFT JOIN
(
SELECT meta_value As Prenom, post_id -- <----- this
FROM wp_postmeta
WHERE meta_key = '_shipping_first_name'
) AS a
ON wp_woocommerce_order_items.order_id = a.post_id
WHERE wp_woocommerce_order_items.order_id =2198
Je reconnais que la réponse fonctionne et a été acceptée, mais il existe un moyen beaucoup plus simple d’écrire cette question. Testé sur mysql et postgres.
SELECT wpoi.order_id As No_Commande
FROM wp_woocommerce_order_items AS wpoi
LEFT JOIN wp_postmeta AS wpp ON wpoi.order_id = wpp.post_id
AND wpp.meta_key = '_shipping_first_name'
WHERE wpoi.order_id =2198