2011-12-09 162 views
0

首先,這些表格沒有任何關係,所以我不能使用JOIN從三個表格中選擇數據

我得到了三個表與另一個數據,我需要在一個查詢中顯示來自這三個表的所有數據,並得到一個結果。

比如我:包含

Hot News表; titletexticon行。

Bad News表中包含; titletexticon行。

Good News表中包含; titletexticon行。

而且我需要在一個查詢中撤消所有消息。可能嗎?

+1

誰能輸入最快的? –

+0

@MikeChristensen,不是我 - 顯然是:) –

回答

3

使用UNION

SELECT title, text, icon FROM `Hot News` 
UNION 
SELECT title, text, icon FROM `Bad News` 
UNION 
SELECT title, text, icon FROM `Good News` 

注意UNION刪除重複。如果您想保留重複項,請改用UNION ALL。

+1

要添加您的示例,如果您使用「SELECT *」,則整個表格結構必須相同,否則可以選擇單個列,只要它們是等價的。 – Matthew

+0

我總是收到這個錯誤:'一般錯誤:1271操作'UNION''排序的非法混合。 – Cyclone

+0

嗯看起來像你的表有不同的字符集? –

1
SELECT Title, Text Icon From HotNews 
UNION ALL 
SELECT Title, Text Icon From BadNews 
UNION ALL 
SELECT Title, Text Icon From GoodNews 
1

如果我讀了你的問題的權利:

SELECT title, text, icon, 'News' AS type 
FROM HotNews 
UNION ALL 
SELECT title, text, icon, 'Bad' AS type 
FROM BadNews 
UNION ALL 
SELECT title, text, icon, 'Good' AS type 
FROM GoodNews 

通過包括type這意味着,無論您使用的是使這個數據給用戶,可以告訴它是什麼樣的消息。

+0

收到此錯誤:'一般錯誤:1271非法混合整理操作'UNION'',與Mark Byers的答案相同。 – Cyclone

+0

@Cyclone,你的桌子上是否有相同的字符集? –

+0

是的,'latin1_swedish_ci'。 – Cyclone