获取另一个表中没有值的行

时间:2015-10-26 19:42:39

标签: mysql sql

我认为这段代码可以进行一些修改,但我不确定如何引用表名和列名,或者如何比较值。

SELECT a.id
  FROM a LEFT JOIN b ON a.id = b.a_id
  WHERE b.id IS NULL;

我有两个表,组和用户。 Groups是所有可用组的列表,如下所示:

| group  | mission       |
| test   | just testing  |
| design | still testing |
| rand   | last one      |

用户是用户列表:

| user   | group  |
| me     | test   |
| me     | rand   |
| you    | test   |
| you    | design |

一次只能查询一个用户。如果查询是在用户“我”上运行的,那么它应该返回:

| group  |
| design |

所以我认为它会是这样的:

select group from groups where username = "me" and ....

这就是我迷路的地方。

2 个答案:

答案 0 :(得分:2)

你的第一个猜测几乎是正确的:

http://sqlfiddle.com/#!9/eca9b/3

SELECT g.*
FROM groups g
LEFT JOIN users u
 ON u.group = g.group
    AND u.user = 'me'
WHERE u.user IS NULL;

答案 1 :(得分:1)

我不确定我是否理解你的问题,因为它不是很清楚,但基于标题,我想你需要做这样的事情:

SELECT * FROM Table1 WHERE Table1.User NOT IN (SELECT user FROM Table2)
相关问题