视图中的Mysql未知列


Mysql Unknown column on view

我很难理解视图、联合和联接是如何工作的,

我有这样的看法:

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-字段列表""中的未知列"quantity"

我到底在努力实现什么?我想使用唯一列从这些表中选择所有数据,我不想像名称1、名称2等列。

做这件事的正确方法是什么?

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