我想如果我搜索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/

10-16 14:18