选择两个表之间没有匹配的行

时间:2018-01-31 05:59:15

标签: mysql join outer-join

我有两个表,Table1和Table2。我想在Table2中选择Table1中未包含的不同行。这是一个例子:

  Table1

   | Name  |  | id |
   -----------------------
1. | aa |  | 1 |
   ------
2. | bb |  | 1 |
   ------
3. | cc |  | 2 |
   ------
4. | dd |  | 2  |
   ------

Table2

   | name |
   ------
1. | aa |
   ------
2. | aa |
   ------
3. | bb |
   ------
4. | cc |
   ------
5. | cc |
-------------
6. | DD |
   ------
7. | ee |
   ------
8. | ee |
   ------

当id = 1时,我希望所有在两个表中不匹配的行 比如id = 1时的结果  |名字|

1. | cc |

2. | dd |

3. | ee |

我也试过了外连接但是当id = 1或id = 2时它没有区分我的结果

1 个答案:

答案 0 :(得分:0)

这个问题不是很清楚,但我认为这就是你所需要的

SELECT  DISTINCT  
        *
FROM    Table2 t2
        LEFT JOIN Table1 t1
            ON t1.name = t2.name
WHERE    ID <> 1 OR ID IS NULL