我有以下结构的表:
table1
| ID1 | NAME | GROUP_ID |
-------------------------
| 1 | AAA | 101 |
| 2 | A_A | 101 |
| 3 | BBB | 0 |
| 4 | CCC | 103 |
| 5 | C_C | 103 |
| 6 | DDD | 0 |
| 7 | EEE | 0 |
| 8 | FFF | 0 |
| 9 | GGG | 0 |
| 10| HHH | 104 |
| 11| H_H | 104 |
table2
| ID2 | NAME |
--------------
| 1 | AAA |
| 2 | BBB |
| 3 | C_C |
groups
| GROUP_ID | NAME |
-------------------
| 101 | AAA |
| 101 | A_A |
| 103 | CCC |
| 103 | C_C |
| 104 | HHH |
| 104 | H_H |
'table1'是包含所有元素的表 . 在此表中,具有由条件创建的重复记录,并且此元素插入表'groups'中 . 在table2中有与table1中的元素匹配的元素 .
我想显示table1中不在table2中的所有记录 . 如果table2中的元素在表组中,则不会在结果表中显示此组中的所有元素 . 在这种情况下,元素是AAA / A_A(group_id 101)和CCC / C_C(group_id 103)
RESULT TABLE
| ID1 | NAME | GROUP_ID |
-------------------------
| 6 | DDD | 0 |
| 7 | EEE | 0 |
| 8 | FFF | 0 |
| 9 | GGG | 0 |
| 10| HHH | 104 |
| 11| H_H | 104 |
名称为A_A和C_C的元素不在RESULT TABLE中,因为此项目是重复的 .
2 回答
此查询将按名称显示
table1
中不在table2
中的所有元素,并且还将筛选出与table2
中存在的group
条目具有相同ID的所有条目(在您的情况下为重复项) .请参阅sqlFiddle已更新 .
怎么样:
对于使用过的组:
对于所有群体,不论用途如何:
http://sqlfiddle.com/#!2/83b7c/45