嗨,我正在建立一種議程/網站與PHP/MySQL的。 此議程包含按日期排序的公共活動和用戶個人筆記。 我需要從數據庫中的EVENTS TABLE和NOTES TABLE中的註釋中加載所有事件。 但是這兩個表具有完全不同的結構,它們只有一個相同的字段:DATETIME。mysql從兩個表中選擇數據和不同的結構
那我該如何按日期排序公共事件和個人筆記呢?
請幫我一把! =) 謝謝luca
嗨,我正在建立一種議程/網站與PHP/MySQL的。 此議程包含按日期排序的公共活動和用戶個人筆記。 我需要從數據庫中的EVENTS TABLE和NOTES TABLE中的註釋中加載所有事件。 但是這兩個表具有完全不同的結構,它們只有一個相同的字段:DATETIME。mysql從兩個表中選擇數據和不同的結構
那我該如何按日期排序公共事件和個人筆記呢?
請幫我一把! =) 謝謝luca
提高每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
使用帶有兩個查詢的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
類型字段既可以是字符串也可以是整數,以便輕鬆區分行來自哪個表。
的感謝!但我怎麼知道,即時回聲的行是來自user_notes或事件(因爲我需要樣式不同以及)?有什麼比留下例如一個NULL字段更優雅,因爲當$ row ['0'] == NULL我知道它屬於一個特定的表? =) – luca 2011-02-17 18:51:35