2012-01-03 67 views
2

我可以在我正在處理的MySQL數據庫問題上使用一些幫助。對於幾乎相同的問題,我已經經歷了一堆舊的答案 - 但沒有運氣。有些答案看起來像是我需要的(JOIN,INNER JOIN,JOIN LEFT), - 但仍然沒有給我正確的輸出。我得到了無論是一個奇怪的輸出或一個普通的錯誤消息...將來自多個表的相同結果集合併到一個結果集中

OK這裏有雲:

我有4個表 - 它們都包含相同的字段數 - 使用相同的名稱。所以4個不同的表格有重複的字段。

我需要從所有4個表中的字段eid = 219中獲取所有內容到一個數組中。

我需要能夠限制輸出爲20行 - 所以我可以在不同的頁面上顯示它們。這意味着起點將有所不同,取決於當前頁...

任何想法如何去做這件事?

比方說,該表是:

表1 表2 表3 表4

而且它們都包含字段: ID EID 名 tekst

THX 約翰

回答

3

你需要一個聯盟q uery:

(SELECT id, eid, name, tekst, 'from table 1' as table_source FROM table1) 
UNION 
(SELECT id, eid, name, tekst, 'from table 2' as table_source FROM table2) 
UNION 
(SELECT id, eid, name, tekst, 'from table 3' as table_source FROM table3) 
UNION 
(SELECT id, eid, name, tekst, 'from table 4' as table_source FROM table4) 
ORDER BY name LIMIT 20 
+0

工程就像一個魅力。非常感謝... – 2012-01-03 11:13:11

+0

但是,我現在意識到,我有新的問題,然後:我有任何方式來告訴哪一行是從哪個表? – 2012-01-03 11:14:03

+1

檢查編輯的答案。您可以將任何想要的文本作爲列扔出。因此,將table_source靜態值更改爲您需要區分表的任何內容。 – davidethell 2012-01-03 11:52:25

相關問題