2011-02-17 152 views
2

嗨,我正在建立一種議程/網站與PHP/MySQL的。 此議程包含按日期排序的公共活動和用戶個人筆記。 我需要從數據庫中的EVENTS TABLE和NOTES TABLE中的註釋中加載所有事件。 但是這兩個表具有完全不同的結構,它們只有一個相同的字段:DATETIME。mysql從兩個表中選擇數據和不同的結構

那我該如何按日期排序公共事件和個人筆記呢?

請幫我一把! =) 謝謝luca

回答

2

提高每OP意見唐的回答,您可以添加一列知行是在什麼表。

SELECT 'events' As Tbl, 
     datetime, 
     location, 
     organizer, 
     NULL as notes 
FROM events 
UNION 
ALL 
SELECT 'user_notes' As Tbl, 
     datetime, 
     NULL, 
     NULL, 
     notes 
FROM user_notes 
ORDER 
BY  datetime DESC 
2

使用帶有兩個查詢的UNION ALL。每個表的查詢在其他表的所有列中只有NULL。例如:

SELECT 'event' as type, 
     datetime, 
     location, 
     organizer, 
     NULL as notes 
FROM events 
UNION 
ALL 
SELECT 'user_note', 
     datetime, 
     NULL, 
     NULL, 
     notes 
FROM user_notes 
ORDER 
BY  datetime DESC 

類型字段既可以是字符串也可以是整數,以便輕鬆區分行來自哪個表。

+0

的感謝!但我怎麼知道,即時回聲的行是來自user_notes或事件(因爲我需要樣式不同以及)?有什麼比留下例如一個NULL字段更優雅,因爲當$ row ['0'] == NULL我知道它屬於一個特定的表? =) – luca 2011-02-17 18:51:35

相關問題