mysql在两个表中找到唯一的差异

时间:2017-01-04 14:33:23

标签: mysql

我有一个问题,弄清楚两个表之间的区别。

首先,我想加入这两个表,因为我想排除第6步和第11步之类的条目。我只需要在字段上检查匹配:步骤

然后我试图找出哪些步骤在选项字段上没有匹配。示例步骤5与选项16匹配。然后步骤5需要以某种方式删除,问题是步骤5,选项15 - 我无法真正“摆脱”。

Table 1:  
--------------
Fields: STEP, OPTION

 - 5, 16
 - 10, 15
 - 11, 31
 - 12, 14

Table 2:
----------
Fields: STEP, OPTION

 - 5, 15
 - 5, 16
 - 6, 7
 - 12, 13

基本上我要找的结果是步骤12,选项13。

猜猜它会在某个方面:

SELECT * FROM table1 AS T1 INNER JOIN table2 AS T2 ON T1.step = T2.step

然后结果是,你必须做类似的事情(我知道它不是正确的SQL,但我不知道该怎么做):

选择步骤FROM above_result WHERE(T1.step = T2.step AND T1.option = T2.option)== HUNTING COUNT 0

因为步骤5将计数1,步骤12计数为0。

我尝试了各种分组,计数,加入 - 但尚未破解它。

我希望现在更清楚

1 个答案:

答案 0 :(得分:0)

感谢gunr2171的提示 - 帮助我的解决方案是以下问题:

  

SELECT MP.step_id,(SELECT COUNT(id)FROM table2 WHERE   option_id = CP.option_id AND step_id = CP.step_id)counter FROM table2 AS   MP INNER JOIN table1 AS CP ON CP.step_id = MP.step_id HAVING counter = 0

我不确定它是最快的解决方案,但它解决了我的问题 - 这就是找到"独特的"步骤,步骤匹配,但不是两个表之间的选项。