我很难理解视图、联合和联接是如何工作的,
我有这样的看法:
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