您好我正在建立一种带有php / mysql的议程/网站。 该议程包含按日期排序的公共活动和用户个人笔记。 我需要从数据库中的EVENTS TABLE和NOTES TABLE中的注释加载所有事件。 但是这两个表有一个完全不同的结构,它们只有一个相同的字段:DATETIME。
我如何按日期排序公共事件和个人笔记呢?
请帮帮我! =) 谢谢卢卡
答案 0 :(得分: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
type字段可以是字符串或整数,以便轻松区分该行来自哪个表。
答案 1 :(得分:2)
根据OP评论改进Don的答案,您可以添加一列来了解该行所在的表格。
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