首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何过滤mysql内部连接查询的结果

如何过滤mysql内部连接查询的结果
EN

Stack Overflow用户
提问于 2015-09-07 14:08:16
回答 2查看 85关注 0票数 0

我对我的许多关系都有意见。

客户端表列: clientID、名称、地址等。

用户表列: userID、名称、地址等。

Users_clients列: userID,clientID。

每个客户端可以有多个用户连接,用户可以有多个客户端。

现在,我的users_clients表包含以下内容:

代码语言:javascript
复制
userID | clientID<br>
1      | 2
1      | 3
2      | 2
2      | 3
3      | 3
3      | 2
4      | 1

在我的php页面上,我想要一个尚未附加到客户机的用户列表。

例如。如果我单击具有clientID = 3的客户端配置文件,它应该向我显示一个没有附加到此客户端的用户列表。

代码语言:javascript
复制
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

希望这对你有意义。请随便问:)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-09-07 14:22:15

你可以用不同的方式处理。

首先用clientId =3请求查找每个用户;

代码语言:javascript
复制
select u.id from users u
INNER JOIN users_clients uc
ON u.userID = uc.userID 
WHERE uc.clientID =3;

然后,您可以使用这个请求来获取除clientId = 3以外的所有用户。

最终请求如下所示:

代码语言:javascript
复制
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);

希望这会有所帮助;

票数 0
EN

Stack Overflow用户

发布于 2015-09-07 14:41:25

你试过不同的指令了吗?

代码语言:javascript
复制
select distinct u.id from users u
INNER JOIN users_clients uc
ON u.userID = uc.userID 
WHERE uc.clientID =3;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32440631

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档