在table_b中,如果some_field为null,则在table_a中选择*左联接table_b

时间:2019-06-27 13:28:36

标签: mysql select left-join

table_a包含所有订单,而table_b仅包含特殊订单。每个表中的每个订单都有一个code_field。 table_b中的所有订单也都在table_a中,但是当然不是table_a中的所有订单也都在table_b中。我需要提取table_a中所有不在table_b中的订单。寻找解决方案,但实际上我不知道该怎么写。

2 个答案:

答案 0 :(得分:1)

您可以选择table_a中的所有内容,并按table_b保留加入code_field的位置,并且在table_b中没有匹配顺序的地方,字段将为空

SELECT table_a.*
FROM table_a
LEFT JOIN table_b
  ON table_a.code_field = table_b.code_field
  AND table_b.id IS NULL

答案 1 :(得分:1)

您可以使用“不存在”来做到这一点:

SELECT *
FROM table_a
WHERE NOT EXISTS (
  SELECT 1 FROM table_b
  WHERE table_a.code_field = table_b.code_field
)