【问题标题】:merging data bt tables in mysql在mysql中合并数据bt表
【发布时间】:2010-11-18 08:44:00
【问题描述】:

我有三个表,结构如下:

tb1: id(AI, PK), uid, date, text
tb2: id(AI, PK), uid, date, text ... and so on

我必须将它们分开,因为每个表都有额外的 unqiue 数据。 我想执行一个查询,它将合并并获取最后 20 个条目(即date DESC)(具体来说,我需要uidtext) 来自所有 3 张桌子的组合(好像这是一张大桌子)。

我该怎么做?

【问题讨论】:

    标签: mysql merge union


    【解决方案1】:
    SELECT  *
    FROM    (
            SELECT  uid, text
            FROM    tb1
            ORDER BY
                    date DESC
            LIMIT 20
            ) q
    UNION ALL
    SELECT  *
    FROM    (
            SELECT  uid, text
            FROM    tb2
            ORDER BY
                    date DESC
            LIMIT 20
            ) q2
    UNION ALL
            (
            SELECT  uid, text
            FROM    tb3
            ORDER BY
                    date DESC
            LIMIT 20
            ) q3
    ORDER BY
            date DESC
    LIMIT 20
    

    这比单纯的UNION ALL 更有效。

    在我的博客中查看这篇文章以获得性能比较:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-04-02
      • 2022-07-12
      • 2013-04-19
      • 1970-01-01
      • 1970-01-01
      • 2018-11-07
      • 2012-01-28
      • 2014-11-14
      相关资源
      最近更新 更多