Program Tip

SQL LEFT JOIN 하위 쿼리 별칭

programtip 2020. 10. 29. 19:12
반응형

SQL LEFT JOIN 하위 쿼리 별칭


이 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

그리고이 오류가 발생합니다.

# 1054- 'on clause'의 알 수없는 열 'a.post_id'.

내 코드가 매우 간단하다고 생각하지만 올바르게 만들 수 없습니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?


post_id하위 쿼리에서 선택하지 않았습니다 . 다음과 같은 하위 쿼리에서 선택해야합니다.

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 

나는 대답이 작동하고 받아 들여 졌다는 것을 알고 있지만 그 쿼리를 작성하는 훨씬 더 깨끗한 방법이 있습니다. mysql 및 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 

참고 URL : https://stackoverflow.com/questions/16776176/sql-left-join-subquery-alias

반응형