包含两个select语句

时间:2019-02-28 15:53:56

标签: sql mysql-workbench

我查看了与我相同的其他线程,但是它们似乎没有回答我的问题。

我在这里有此代码:

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)

1 个答案:

答案 0 :(得分:0)

UNION的2个查询必须具有相同的列数,并且这些列必须具有相同的数据类型,因此请更改为此:

select productcode, Brand, product, size, 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, '') <> ''