我想如果我搜索courier_id=950,那么它将只接受那些不在订单中的订单根据courier_id=950拒绝表
用于ex-
如果我搜索courier_id=950,则只需要订单id 852853 bcoz,这不符合courier_id=950的订单拒绝表
请看下面的例子
例如:-
订单表
id, ordername
850 test1
851 test2
852 test3
853 test4
订单拒绝表
id,courier_id,order_id
1 950 850
2 950 851
3 951 853
预期产量
订单表
id, ordername
852 test3
853 test4
下面是我的问题
SELECT o.id
FROM orders o
LEFT JOIN order_rejected_details r ON o.id = r.order_id
WHERE r.courier_id != 950
最佳答案
使用left join必须将条件传递到WHERE
子句到ON
子句
SELECT o.id
FROM orders o
LEFT JOIN order_rejected_details r
ON o.id = r.order_id AND r.courier_id != 950
[更新]
在我阅读了注释之后,我认为正确的查询是使用子查询:
SELECT o.id
FROM orders o
WHERE
o.id NOT IN (
SELECT r.order_id
FROM order_rejected_details r
WHERE r.courier_id = 950
)
关于mysql - 从表中查找表中不可用的记录的代码,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41015472/