【问题标题】:LIMIT results on specific table when using LEFT JOIN使用 LEFT JOIN 时限制特定表上的结果
【发布时间】:2017-03-20 08:29:26
【问题描述】:

以下是我的查询。我只想从帖子表中获得 10 个帖子。但是下面的LIMIT 10 不会限制帖子表中的结果,但会限制在另一个表中。

谁能帮我解决这个问题?非常感谢您的帮助。

SELECT posts.id , posts.cat_id , posts.school_id , posts.campus_id , posts.status , posts.priority , posts.title , posts.content , posts.phone , posts.email , posts.tags , posts.zip , posts.price_new , posts.price_old , posts.reviewed_by , posts.reviewed_date , posts.updated_date , posts.posted_date , posts.expired_date , posts.ip_address , schools.school_name, campuses.campus_name , meta.meta_key , meta_value , images.img_name 
FROM posts LEFT JOIN
     meta
     ON posts.id = meta.post_id LEFT JOIN
     images
     ON posts.id = images.post_id LEFT JOIN
     schools
     ON posts.school_id = schools.id LEFT JOIN
     campuses
     ON posts.campus_id = campuses.id
ORDER BY posts.updated_date DESC LIMIT 10

【问题讨论】:

标签: php mysql select post limit


【解决方案1】:

一种方法是使用子查询:

SELECT p.id , p.cat_id, p.school_id, p.campus_id , p.status,
       p.priority, p.title, p.content, p.phone, p.email, p.tags, p.zip,  
       p.price_new, p.price_old, p.reviewed_by, p.reviewed_date,
       p.updated_date, p.posted_date, p.expired_date, p.ip_address,
       s.school_name, c.campus_name,
       m.meta_key, m.meta_value, 
       i.img_name 
FROM (SELECT p.*
      FROM posts p
      ORDER BY p.updated_date DESC
      LIMIT 10
     ) p LEFT JOIN
     meta m
     ON p.id = m.post_id LEFT JOIN
     images i
     ON p.id = i.post_id LEFT JOIN
     schools s
     ON p.school_id = s.id LEFT JOIN
     campuses c
     ON p.campus_id = c.id;

请注意,表别名的使用使查询更易于编写、阅读和理解。

【讨论】:

  • 感谢您的回答,但我有 2 个错误,请您看一下好吗? screencast.com/t/QUGj2k9kmscreencast.com/t/bAz0rGb69htg
  • 我看到 ORDER BY 不见了。请再试一次@LouisTran
  • 谢谢。但是我尝试了您修改后的查询并得到了这个screencast.com/t/1fyB4Cqc9
  • 发现另一个错字并修正。你现在可以试试。请先通过查询。我猜戈登没有机会测试这个查询。因此,很明显可能存在拼写错误。 @LouisTran
  • 可能修正了最后一个错字。而这一次错误消失了。请检查此sql fiddle@LouisTran
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-02-28
  • 2013-02-20
  • 1970-01-01
  • 2015-01-19
  • 2017-11-17
  • 2019-09-06
  • 2017-02-06
相关资源
最近更新 更多