2010-11-20 85 views
2

我試圖將許多表拼湊成一個查詢並按日期排序。mySQL union返回表名

但是我也想要一個定義信息來自哪個表的列 - 這樣我可以使用PHP來決定如何處理數據。

這是我迄今爲止

SELECT DATABASE() as source, title AS MAIN, id as ID, date 
    FROM collection WHERE userID = '1234' 
    UNION 
    SELECT DATABASE() as source, body, id, date 
    FROM blog WHERE posterID = '1234' 
    ORDER BY date DESC 

其中由日運作良好,訂單,但「源」列僅返回數據庫 「myusername.dabtabaseName」

反正是有mySQL可以返回它來自的TABLE名稱?我查看了手冊,但找不到任何東西。

謝謝。

回答

6

爲什麼不簡單?

SELECT DATABASE() as source, 'Collection' as TblName,title AS MAIN, id as ID, date 
     FROM collection WHERE userID = '1234' 
     UNION 
     SELECT DATABASE() as source, 'Blog' as TblName,body, id, date 
     FROM blog WHERE posterID = '1234' 
     ORDER BY date DESC 

我懷疑任何SQL方言將爲您提供一個功能,用於指示查詢的表名,因爲你可以有子查詢,聯接等

+0

..Wow我覺得愚蠢...哈哈!謝謝! – Moe 2010-11-20 01:46:48

+0

你不應該因爲提問而感到愚蠢 – Sparky 2010-11-20 01:48:57