with two subqueries left inner sql subquery left-join

two - mysql subquery in join



SQL LEFT JOIN Subquery Alias (2)

No seleccionó post_id en la subconsulta. Debe seleccionarlo en la subconsulta de esta manera:

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

Estoy ejecutando esta consulta 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

Y obtengo este error:

# 1054 - Columna desconocida ''a.post_id'' en ''cláusula on''.

Creo que mi código es bastante simple, pero no puedo hacerlo bien. ¿Qué estoy haciendo mal?


Reconozco que la respuesta funciona y ha sido aceptada, pero hay una forma mucho más clara de escribir esa consulta. Probado en mysql y 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