【问题标题】:Join 3 tables with a limit加入 3 个有限制的表
【发布时间】:2014-05-17 15:43:33
【问题描述】:

我创建了这个查询来从表时间轴中选择条目,并使用我的用户表中的数据来丰富这些条目。现在我想从 media.album = '0' 的媒体表中只选择 (1) 条目 media.filename,我的查询结果现在返回了我想要的,但它返回了媒体表中的所有条目,我需要只有一个。我可以将我的条件或限制 1 放在哪里?

SELECT dat, sourceinfo, users.firstname, users.lastname, users.token, users.prof,
media.filename from timeline
JOIN users ON users.user_id = timeline.userid2 JOIN media ON users.user_id = 
timeline.userid2 
WHERE (timeline.user_id = '25') and (dat BETWEEN DATE_ADD(NOW(), INTERVAL -1 
DAY) AND NOW())

非常感谢

【问题讨论】:

    标签: mysql join


    【解决方案1】:

    将LIMIT 子句放在子查询中。

    SELECT dat, sourceinfo, users.firstname, users.lastname, users.token, users.prof,
            media.filename
    FROM timeline
    JOIN users ON users.user_id = timeline.userid2
    CROSS JOIN (SELECT filename
                FROM media
                WHERE album = 0
                LIMIT 1) AS media
    

    或者您可以将子查询放在SELECT 子句中:

    SELECT dat, sourceinfo, users.firstname, users.lastname, users.token, users.prof,
           (SELECT filename
            FROM media
            WHERE album = 0
            LIMIT 1) AS filename
    FROM timeline
    JOIN users ON users.user_id = timeline.userid2
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-05
      • 2011-07-20
      • 2013-08-25
      • 2016-02-14
      相关资源
      最近更新 更多