2017-02-09 144 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 '%獲得者%'