MySQL left join查询on和where的表达式有什么区别
数据
order订单
order_detail订单明细
两个表通过order_id关联
goods = ‘苹果’
sql1
条件在on后面
SELECT
*
FROM
`order` t1
LEFT JOIN order_detail t2 ON t2.order_id = t1.order_id
AND t2.goods = '苹果';
查询订单中的苹果。
sql2
条件在where后面
SELECT
*
FROM
`order` t1
LEFT JOIN order_detail t2 ON t2.order_id = t1.order_id
WHERE
t2.goods = '苹果';
查询有苹果的订单。