【问题标题】:LEFT JOIN with LIMITLEFT JOIN 与 LIMIT
【发布时间】:2014-10-28 17:40:32
【问题描述】:

我有两个表 A 和 A_LOG

关系是 N A_LOG 到 1 A

A 表是: 援助, 口号

A_LOG 表是: a_log_id, 援助, 数据

一张桌子里面我有:

a_id | slogan
   1 | bla
   2 | bla bla
   3 | bla bla bla
   4 | bla bla bla bla

A_LOG 表中我有:

a_log_id | a_id | data
       1 |   1  | 2012-01-01
       2 |   1  | 2013-01-01
       3 |   3  | 2012-02-01
       4 |   3  | 2013-02-01

当我进行左连接时,我得到

 a_id | slogan              | data
    1 | bla                 | 2012-01-01
    1 | bla                 | 2013-01-01
    2 | bla bla             | NULL
    3 | bla bla bla         | 2012-02-01
    3 | bla bla bla         | 2013-02-01
    4 | bla bla bla bla     | NULL

我想要什么

     a_id | slogan              | data
        1 | bla                 | 2013-01-01
        2 | bla bla             | NULL
        3 | bla bla bla         | 2013-02-01
        4 | bla bla bla bla     | NULL

我使用的是简单的左连接,我也尝试过左连接(从 A_LOG 顺序中选择数据 DESC LIMIT1),但这限制了它的连接数量。

我试图用一个抽象的例子来说明自己,我看到的许多其他例子都令人困惑,因为他们使用的是个人环境。 我的真实情况有很多其他人加入和东西,但这就是问题,我想隔离和解决。

【问题讨论】:

    标签: mysql left-join limit


    【解决方案1】:

    试试这个

    SELECT A.a_id, A.slogan, max(AL.data) data
    FROM A
    LEFT OUTER JOIN A_LOG AL ON A.a_id = AL.a_id
    GROUP BY A.a_id, A.slogan
    

    【讨论】:

    • @bacoco 。 . .这对我来说是正确的。你能设置一个 SQL Fiddle 来显示它是如何不工作的吗?
    猜你喜欢
    • 1970-01-01
    • 2017-04-25
    • 2014-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-03
    • 1970-01-01
    • 2021-02-05
    相关资源
    最近更新 更多