openlang

SQL 파생 테이블을 거치면 사라지는 필드

다음 SQL 문을 실행하고 있습니다:

SELECT wc_order_items.order_id AS Order_Number
FROM wc_order_items
LEFT JOIN (
    SELECT meta_value AS Given_Name
    FROM wc_metadata
    WHERE meta_key = '_shipping_first_name'
) AS shipping
ON wc_order_items.order_id = shipping.post_id
WHERE wc_order_items.order_id = 3276

이런 오류가 나옵니다:

#1054 - Unknown column 'shipping.post_id' in 'on clause'.

꽤 단순한 코드 같은데 제대로 작동하게 만들지 못하겠습니다. 어디가 잘못됐나요?

영어에서 번역원문 보기

이어지는 대화 2

서로의 근거를 따라
  1. 고유 링크

    서브쿼리의 선택 항목에 post_id가 빠져 있습니다. 서브쿼리에서 이 필드를 이렇게 선택해야 합니다:

    SELECT wc_order_items.order_id AS Order_Number
    FROM wc_order_items
    LEFT JOIN (
        SELECT meta_value AS Given_Name, post_id -- include this
        FROM wc_metadata
        WHERE meta_key = '_shipping_first_name'
    ) AS shipping
    ON wc_order_items.order_id = shipping.post_id
    WHERE wc_order_items.order_id = 3276
    영어에서 번역원문 보기
  2. 고유 링크

    이 답이 작동하고 채택된 건 알겠지만, 쿼리를 훨씬 깔끔하게 쓸 수 있습니다. mysql과 postgres에서 시험했습니다.

    SELECT orders.order_id AS Order_Number
    FROM wc_order_items AS orders
    LEFT JOIN wc_metadata AS metadata
      ON orders.order_id = metadata.post_id
     AND metadata.meta_key = '_shipping_first_name'
    WHERE orders.order_id = 3276
    영어에서 번역원문 보기

같은 질문의 다른 갈래

  1. D 배열에서 일치하는 항목 찾기

    연관 배열에서는 이렇게 할 수 있어요 일반 배열에서는 어떻게 하나요? 예를 들면 이런 검증식을 쓰고 싶어요

    답글 2최근 활동 d
  2. PostgreSQL 9+에서 있을 수도 있는 열 안전하게 삭제하기

    테이블의 열을 하나 삭제하고 싶습니다. 그 열이 있는지 확인하려면 어떻게 해야 하나요? https://www.postgresql.org/docs/9.2/static/sql-altertable.html, 의 설명서를 읽었지만…

    답글 2최근 활동 sql
  3. Solc 0.7.0이 mapping 멤버를 가진 struct 생성을 거부해요

    npm으로 설치한 Solc version 0.7.0을 쓰고 있어요. 안에 mapping이 있는 Struct를 만들면 "Struct containing a (nested) mapping cannot be constructed.…

    답글 2최근 활동 solidity