我有一個MySQL表,其中包含多個表中的大量數據。因此,爲了全面瞭解,我認爲最好的選擇是使用UNION子句,但是我也想知道哪些表的結果來自於某些表具有多個值,有些表爲空。Mysql聯盟條款確定表
下面的SQL似乎不工作,但我不能看到什麼是錯的。
(SELECT *, `2` AS 'cat' from `2` where `recid` = 'cneta0ld00ah')
UNION
(SELECT *, `3` AS 'cat' from `3` where `recid` = 'cneta0ld00ah')
UNION
(SELECT *, `4` AS 'cat' from `4` where `recid` = 'cneta0ld00ah')
UNION
(SELECT *, `5` AS 'cat' from `5` where `recid` = 'cneta0ld00ah')
所有表看起來像下面的命名,1,2,3,4等
recid | item
-------------------------
cneta0ld00ah | 1
cneta0ld00ab | 1
cneta0ld00ad | 3
我不能導入來自一個非常古老的改變表的名稱作爲其數據庫,我們正試圖轉換和提取數據。
如果我運行它沒有「表名」 AS「貓」,那麼它運行良好,只要我嘗試在它拋出一個錯誤說
Unknown column '2' in 'field list'
這似乎表名稱添加想到2是一個列名?
是否有原因,爲什麼你使用'UNION'而不是'UNION ALL'? – Kermit
Erm不,只是覺得UNION可能是要走的路。剛注意到UNION刪除重複的行,它可能每個表都會返回一個1的項目,我想知道這是否會返回1行。 ALL返回所有行?任何其他原因使用ALL? –
'UNION'需要額外的時間去除重複。如果你只是需要合併數據而不重複,'UNION ALL'要快得多,因爲它不會刪除重複項。看到我的答案。 – Kermit