我对我的许多关系都有意见。
客户端表列: clientID、名称、地址等。
用户表列: userID、名称、地址等。
Users_clients列: userID,clientID。
每个客户端可以有多个用户连接,用户可以有多个客户端。
现在,我的users_clients表包含以下内容:
userID | clientID<br>
1 | 2
1 | 3
2 | 2
2 | 3
3 | 3
3 | 2
4 | 1在我的php页面上,我想要一个尚未附加到客户机的用户列表。
例如。如果我单击具有clientID = 3的客户端配置文件,它应该向我显示一个没有附加到此客户端的用户列表。
SELECT u.name, u.email, u.userID FROM users u
INNER JOIN users_clients uc
ON u.userID = uc.userID
WHERE uc.clientID !=3这很好,但是如何创建我的MySQL查询,以便当用户同时拥有clientID 3和client 2时,它就不会显示出来。
此查询显示
1
我想要的是:
3-2 4-1
希望这对你有意义。请随便问:)
发布于 2015-09-07 14:22:15
你可以用不同的方式处理。
首先用clientId =3请求查找每个用户;
select u.id from users u
INNER JOIN users_clients uc
ON u.userID = uc.userID
WHERE uc.clientID =3;然后,您可以使用这个请求来获取除clientId = 3以外的所有用户。
最终请求如下所示:
select u.id from users u where u.id NOT IN (select u.id from users u
INNER JOIN users_clients uc
ON u.userID = uc.userID
WHERE uc.clientID =3);希望这会有所帮助;
发布于 2015-09-07 14:41:25
你试过不同的指令了吗?
select distinct u.id from users u
INNER JOIN users_clients uc
ON u.userID = uc.userID
WHERE uc.clientID =3;https://stackoverflow.com/questions/32440631
复制相似问题