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, 这页手册,但没有找到说明这种操作的例子。 还找到了检查 SQL Se…

    回复 2最近活动 sql
  3. Solc 0.7.0 拒绝创建带有 mapping 成员的结构体

    我通过 npm 安装的是 Solc version 0.7.0。创建内部带有 mapping 的 Struct 时,会出现这条消息 "Struct containing a (nested) mapping cannot be constructed…

    回复 2最近活动 solidity