首页 > 解决方案 > MySQL:选择一个表中的元素但不在另一个表中,我得到错误的结果

问题描述

我有两个分别名为 tableA 和 tableB 的表

在此处输入图像描述

在此处输入图像描述

表 B 包含所有地点的名称。我想选择所有设施和周,设施在表 A 中但不在表 B 中。下表显示了我打算实现的目标

在此处输入图像描述

下面的 MySql 查询给出了错误的结果

 select tableA.Week ,tableB.Place 
    from tableA
    RIGHT JOIN tableB
    on tableA.Place <> tableB.Place

标签: mysql

解决方案


你需要一个CROSS不同WeekTableAtoTableB和的NOT EXISTS连接来得到你想要的结果:

SELECT w.Week, b.Place
FROM (SELECT DISTINCT Week FROM TableA) w
CROSS JOIN TableB b
WHERE NOT EXISTS (SELECT 1 FROM TableA a WHERE a.Week = w.Week AND a.Place = b.Place)

请参阅演示
结果:

星期 地方
1 C
2
2 C

推荐阅读