我有一个表格,其数据看起来像这样:
+------+--------+------------+
| id | Action | GeoDataID |
+------+--------+------------+
| 1 | 3 | 117085664 |
| 2 | 4 | 117085664 |
| 3 | 3 | 117096940 |
| 4 | 3 | 117096404 |
+------+--------+------------+
现在,我想获得所有只有action = 3的GeoDataID,而不是action = 4. PS !! 1和2具有IDENTICAL GeoDataID,不应在结果中返回第1行。 从id 1和2可以看出,它们具有相同的GeoDataID。
从这个例子中我只想输出id 3和4.我一直在试图谷歌,但找不到类似于我想要的东西。
从上面的例子中,结果应该是:
+------+--------+------------+
| id | Action | GeoDataID |
+------+--------+------------+
| 3 | 3 | 117096940 |
| 4 | 3 | 117096404 |
+------+--------+------------+
由于GeoDataID 117085664具有Action 4,因此不包括1和2。
答案 0 :(得分:0)
您可以通过使用NOT EXISTS
引入“否定条件”来排除具有相同GeoDataID但行动4的项目:
SELECT mt1.id, mt1.Action, mt1.GeoDataID
FROM MyTable mt1
WHERE mt1.Action = 3
AND NOT EXISTS
(
SELECT 1
FROM MyTable mt2
WHERE mt2.Action = 4
AND mt2.GeoDataID = mt1.GeoDataID
);