Mysql未知列视图

时间:2015-11-28 23:18:47

标签: php mysql

我正在努力了解视图,联合和联接的工作方式,

我有这个观点:

SELECT
 id,
 CODE,
 NAME,
 type,
 quantity
FROM
 items
UNION ALL
 SELECT
    id,
    CODE,
    NAME,
    type,
    price,
    quantity
FROM
    inventory_items

表项目没有名为quantity的列,但我仍然需要从inventory_items获取该值,如果我从我获得的项目中删除数量选择:

  

[Err] 1064 - 您的SQL语法有错误;检查手册   那       对应于您的MySQL服务器版本,以便在FROM项目附近使用正确的语法

如果我离开选择我得到:

  

[Err] 1054 - 字段列表'

中的未知列'数量'

我到底想要完成什么?我想使用唯一列从这些表中选择所有数据,我不想要name1,name2列等。

这样做的正确方法是什么?

1 个答案:

答案 0 :(得分:3)

UNION期望每组结果中的列数相同。如果您的列始终为空,则只需选择NULL而不是实列。请注意,列名取自第一个SELECT,因此您需要为NULL添加别名(或者只是切换SELECT)

SELECT
 id,
 CODE,
 NAME,
 type,
 NULL AS price,
 NULL AS quantity
FROM
 items
UNION ALL
 SELECT
    id,
    CODE,
    NAME,
    type,
    price,
    quantity
FROM
    inventory_items