2012-01-21 105 views
0

我用下面進入一個php文件,從數據庫中的數據:故障使用UNION ALL

$query_pedVR = sprintf("SELECT * FROM tablename WHERE active = 1 ORDER BY name ASC"); 

,我需要做的是在一個查詢合併兩個表,但似乎無法得到它上班。我嘗試了UNION ALL,但找不到可用的語法。這是行不通的:

$query_pedVR = sprintf("SELECT * FROM table1 UNION ALL SELECT * FROM table2 WHERE active = 1 ORDER BY name ASC"); 

也試過:

$query_pedVR = sprintf("SELECT * FROM table1 WHERE active = 1 ORDER BY name ASC UNION ALL SELECT * FROM table2"); 

有沒有這兩個表中的任何條目常見。這兩個表格也有不同的一組列。

是否有可能用不同的表結構做到這一點?

感謝您提供任何幫助。

+0

? – ThiefMaster

+0

@ThiefMaster:因爲有很多程序員甚至不去想他們在做什麼。他們只是複製粘貼代碼,並祈禱它的作品 – zerkms

+0

也許我誤解了這個論壇的目的!我在成爲會員的短時間內收到了許多程序員的有用評論。侮辱這個領域的新人有什麼意義? – user1028866

回答

2

如果表有不同的結構,憑啥你使用`sprintf`這個你不能使用select *但必須指定單場

SELECT field1,field2 FROM table1 WHERE active = 1 
union all 
SELECT field1,field2 FROM table2 WHERE active = 1 
+0

我一定會指出,只要表格包含不同的實體 - 沒有任何理由在一個查詢中混合所有內容 – zerkms

+0

我沒有足夠準確地說明情況。這兩個表中有幾個常見的列,這些列是我試圖查詢的列。一個表有額外的實體,我不需要在這個查詢中。我認爲你的例子就是我正在尋找的東西。謝謝 – user1028866