【发布时间】:2019-03-25 10:52:38
【问题描述】:
我查看了与我相同的其他线程,但他们似乎没有回答我的问题。
我这里有这段代码:
select * from outerbarcodes where not exists (select 1
from bridgebarcodes
where bridgebarcodes.barcode = outerbarcodes.barcode
)
union SELECT productcode, Brand, product, size, barcode FROM outerbarcodes WHERE
COALESCE(productcode, '') <> '' AND
COALESCE(Brand, '') <> '' AND
COALESCE(product, '') <> '' AND
COALESCE(size, '') <> ''
我不明白为什么UNION 不起作用?
这是我的专栏设置:
表格:桥接条码 列: ID int(11) AI PK 产品代码 varchar(100) 条码 varchar(100)
表格:外部条形码 列: id int(11) AI PK 产品代码 varchar(100) 品牌 varchar(100) 产品 varchar(100) 大小 varchar(100) 条码 varchar(100)
【问题讨论】:
-
除非我遗漏了什么,否则第一个选择是 select * 因此它将包含名为 id 的列,但第二个选择仅返回列的子集。你必须合并相似的集合。
-
你的意思是这样的?
select ProductCode, barcode from outerbarcodes where not exists (select 1 from bridgebarcodes where bridgebarcodes.barcode = outerbarcodes.barcode ) union SELECT productcode, Brand, product, size, barcode FROM outerbarcodes WHERE COALESCE(productcode, '') <> '' AND COALESCE(Brand, '') <> '' AND COALESCE(product, '') <> '' AND COALESCE(size, '') <> '' -
不分享图片分享文字代码
-
您的两个选择必须具有相同的列才能在联合中工作
-
如何修改代码?我试图删除所有具有空值的行并根据两个表显示所有不存在的值
标签: sql mysql-workbench