mysql从两个表和不同的结构中选择数据

时间:2011-02-17 18:30:01

标签: php mysql select structure

您好我正在建立一种带有php / mysql的议程/网站。 该议程包含按日期排序的公共活动和用户个人笔记。 我需要从数据库中的EVENTS TABLE和NOTES TABLE中的注释加载所有事件。 但是这两个表有一个完全不同的结构,它们只有一个相同的字段:DATETIME。

我如何按日期排序公共事件和个人笔记呢?

请帮帮我! =) 谢谢卢卡

2 个答案:

答案 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