呆子峰 2020-12-09 10:41 采纳率: 0%
浏览 28

tp5 两表联查顺序不一样,为什么查询条件也不一样

( SELECT * FROM `stage` `stage` RIGHT JOIN `stage_order` `order` ON `stage`.`stage_id`=`order`.`stage_id` WHERE  `order`.`stock_time` <  '-1 days'  AND `
order`.`status` = 0 )
 

( SELECT * FROM `stage_order` `order` LEFT JOIN `stage` ON `order`.`stage_id`=`stage`.`stage_id` WHERE  `stock_time` <  '2020-12-08 10:39:15'  AND `order
`.`status` = 0 )

两表联查,主表顺序不一样,为什么日期查询条件要相反呢?

  • 写回答

1条回答 默认 最新

  • Design JBY 2023-05-01 18:46
    关注

    查询条件的相反是因为使用了不同的连接方式。RIGHT JOIN 会先展示右表中的所有记录然后再匹配左表中的记录,所以在右表 stage_order 上应用条件时,需要使用 <。而 LEFT JOIN 会先展示左表中的所有记录然后再匹配右表中的记录,因此在左表 stage_order 上应用条件时,需要使用 >。因此,查询语句中的日期查询条件需要相反。

    评论

报告相同问题?