gpt4 book ai didi

php - 如何过滤mysql内连接查询的结果

转载 作者:行者123 更新时间:2023-11-29 22:02:54 25 4
gpt4 key购买 nike

我的多对多关系出现问题。

客户表列:clientID、姓名、地址等

用户表列:用户 ID、姓名、地址等

Users_clients 列:用户ID、客户端ID。

每个客户端可以附加多个用户,并且用户可以拥有多个客户端。

现在我的 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 和 clientID 2,则它不会显示。

此查询显示

1|22|23|24|1

我正在寻找的是:

3|24|1

希望这对您有意义。欢迎询问:)

最佳答案

您可以采用不同的处理方式。

首先发出请求,寻找 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);

希望这会有所帮助;

关于php - 如何过滤mysql内连接查询的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32440631/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com