使用LEFT JOIN时,LIMIT会在特定表上生成结果

时间:2016-11-07 04:04:25

标签: php mysql select post limit

以下是我的查询。我想从帖子表中只收到10个帖子。但是,下面DefaultLabelPosition并不限制帖子表中的结果,但它会在另一个表格中限制。

任何人都可以帮我修复查询吗?我真的很乐意帮助你。

LIMIT 10

1 个答案:

答案 0 :(得分: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;

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