【发布时间】:2019-04-17 13:58:34
【问题描述】:
我想找到不参加活动的团体。
这是我的桌子:
分组:
+-----------+-------------+-----------+-------------+
| id_groupe | id_createur | name | description |
+-----------+-------------+-----------+-------------+
| 1 | 5 | tagada | epic |
+-----------+-------------+-------------------------+
| 2 | 1 | banana | good |
+-----------+-------------+-----------+-------------+
| 3 | 1 | blueberry | legendary |
+-----------+-------------+-----------+-------------+
| 4 | 2 | coco | great |
+-----------+-------------+-----------+-------------+
群组 1 由成员 5 创建,他的名字是“tagada”,他的描述是“epic”。
事件:
+-----+-------------+----------------+
| id | name | description |
+-----+-------------+----------------+
| 1 | lunch |for lunch monday|
+-----+-------------+----------------+
| 2 | game | play videogame |
+-----+-------------+----------------+
事件 1 的名称是“lunch”,他的描述是“for lunch monday”。
groupe_events:
+--------------+--------------+
| id_groupe_ge | id_events_ge |
+--------------+--------------+
| 1 | 2 |
+--------------+--------------+
| 2 | 2 |
+--------------+--------------+
| 3 | 2 |
+--------------+--------------+
| 1 | 1 |
+--------------+--------------+
| 3 | 1 |
+--------------+--------------+
例如,第 1、2 和 3 组将参加活动 2,而第 1 和 4 组将参加活动 1
如果我使用 LEFT JOIN,我无法指定事件的 id (id_groupe_ge)
Mysql
SELECT *
FROM groupe
LEFT JOIN groupe_events ON id_groupe_ge = id_groupe
WHERE id_groupe_ge IS NULL
或 mysql
SELECT *
FROM groupe
LEFT JOIN groupe_events ON id_groupe_ge = id_groupe
WHERE id_events_ge IS NULL OR id_events_ge <> 2
使用这种方法,我也有 id_events_ge 1 的行
如果我使用经典的 JOIN 和 WHERE,我有参与的组,而这恰恰相反
Mysql
SELECT *
FROM groupe
JOIN groupe_events ON id_groupe_ge = id_groupe
WHERE id_events_ge = 2
例如,我如何找到不参加活动 2 的团体? 这是这个:
+-----------+-------------+-----------+-------------+
| 4 | 2 | coco | great |
+-----------+-------------+-----------+-------------+
其他示例,例如,我想查找不参加活动 1 的组? 这是这个:
+-----------+-------------+-----------+-------------+
| 2 | 1 | banana | good |
+-----------+-------------+-----------+-------------+
| 4 | 2 | coco | great |
+-----------+-------------+-----------+-------------+
【问题讨论】:
-
您想获取所有未参加任何活动的组,或者您将始终拥有一个要获取未参加的组的活动 ID?
标签: mysql sql join left-join right-join