我有3个表users
(id,name),types
(id,name)和user_type
(users_id,types_id)
我想写一个SQL查询来获取所有没有类型的用户。我知道这可能很容易,但我无法理解它。
任何帮助
答案 0 :(得分:1)
SELECT users.name
FROM users JOIN user_types ON users.id = user_types.users_id
WHERE user_types.types_id != yourID
答案 1 :(得分:1)
怎么样:
SELECT * FROM users
WHERE users_id NOT IN
(SELECT users_id FROM user_type)
答案 2 :(得分:0)
您可以尝试这样的事情
SELECT * FROM users
WHERE users_id NOT IN (SELECT users_id FROM user_type)
答案 3 :(得分:0)
作为另一种选择,您可以使用EXISTS
或NOT EXISTS
SELECT *
FROM users
WHERE NOT EXISTS (SELECT * FROM user_type WHERE users.USER_ID = user_type.USER_ID)
另一种方法是使用左连接并检查空值
SELECT *
FROM users AS s
LEFT JOIN user_type AS ut
ON s.USER_ID = ut.user_id
WHERE ut.USER_ID IS null
EXISTS
和NOT EXISTS
上的文档可以在http://dev.mysql.com/doc/refman/5.0/en/exists-and-not-exists-subqueries.html