1

我有 3 个不同的表:

  • 消息

    • news_id
    • 新闻内容
    • 新闻发布日期
  • 歌曲

    • 歌曲编号
    • 歌曲链接
    • 歌曲发布日期
  • 面试

    • 采访ID
    • 采访艺术家
    • 采访内容
    • 采访发布日期

我正在尝试在我的网站上创建一个时间线,以在唯一列表中显示我的 3 个表格中按发布日期排序的所有内容。有没有办法在 MySQL 中做到这一点?

也许创建一个“通用”表,其中包含我的其他 3 个表中按日期排序的所有 id?然后我应该将所有元素与 PHP 链接。是不是太耗电了?

4

1 回答 1

3

试试这个,看看它是否能满足您的需求:

SELECT
    `news_id`      AS `id`,
    `news_content` AS `content`,
    `news_pubdate` AS `pubdate`,
    ""             AS `person`,
    "news"         AS `type`
FROM `news`

UNION
SELECT
    `song_id`      AS `id`,
    `song_link`    AS `content`,
    `song_pubdate` AS `pubdate`,
    ""             AS `person`,
    "song"         AS `type`
FROM `song`

UNION
SELECT
    `interview_id`      AS `id`,
    `interview_content` AS `content`,
    `interview_pubdate` AS `pubdate`,
    `interview_artist`  AS `person`,
    "interview"         AS `type`
FROM `interview`

ORDER BY `pubdate`;
于 2013-03-14T20:40:01.680 回答