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.postgr…

    Ответы 2Последняя активность sql
  3. Solc 0.7.0 отклоняет создание struct с полем mapping

    Через npm у меня установлен Solc версии 0.7.0. Создание Struct с mapping внутри выдаёт сообщение: "Struct containing a (neste…

    Ответы 2Последняя активность solidity