2017-02-09 107 views
0

我得到这个错误错误联合SQL查询

The used SELECT statements have a different number of columns 

当我试图执行这个查询

SELECT DISTINCT * FROM `items` WHERE `tags` LIKE '%winner%' ESCAPE '!' UNION SELECT DISTINCT * FROM `lists` WHERE `tags` LIKE '%winner%' ESCAPE '!' 

THX

+2

编辑您的问题并提供样本数据和期望的结果。错误非常明显;你想要完成的不是。 –

+0

因为无论如何UNION删除重复项,所以您不需要执行SELECT DISTINCT。 – jarlh

+1

在一个union声明中,你必须确保这两个查询在你的db中返回相同数量的字段 – apomene

回答

3

当您使用UNION或UNION ALL,你必须确保查询中的列数相同,例如:

SELECT Product_ID,Product 
FROM Products 
UNION 
SELECT Product 
FROM Orders 

将不起作用,因为这两个查询不会返回相同数量的列。但是:

SELECT Product_ID,Product 
FROM Products 
UNION 
SELECT Order_ID,Product 
FROM Orders 

将工作,因为每个列中的列数相同。

我会摆脱'SELECT *'在您的查询。

0

请在sql中指定列名而不是“*”。

经验: SELECT DISTINCT Col1中,col2的,COL3 FROM items WHERE tags LIKE '%获得者%' UNION SELECT DISTINCT Col1中,col2的,COL3 FROM lists WHERE tags LIKE '%获得者%'