gpt4 book ai didi

php - 这个 MySQL 查询(使用 LEFT OUTER JOIN)有什么问题?

转载 作者:行者123 更新时间:2023-11-30 00:50:41 27 4
gpt4 key购买 nike

我正在尝试进行一个返回以下内容的查询:所有用户都这样:- 他们不是管理员或所有者帐户-它们与项目的client_id具有相同的client_id-它们尚未出现在条目project_users.project_id = 9的project_users表中

这是我的 MySQL 查询:

SELECT `users`.`id` as id, `users`.`first_name` as first_name, `users`.`last_name` as last_name, `users`.`username` as username
FROM (`users`)
JOIN `projects` ON `projects`.`client_id` = `users`.`client_id` AND projects.id = 9
LEFT OUTER JOIN `project_users` ON `users`.`id` = `project_users`.`user_id`
WHERE `users`.`user_type` != 'Admin'
AND `users`.`user_type` != 'Owner'

出于某种原因,此查询似乎返回与项目具有相同 client_id 的所有非 super (不是所有者或管理员)用户,但不排除那些已经存在于 project_users 表中的用户(即 LEFT OUTER JOIN 语句不是不工作)。

谁能告诉我这个查询出了什么问题吗?

谢谢!

最佳答案

您需要添加过滤器来查找不匹配的行。此外,使用表别名可以帮助您进行查询:

SELECT u.`id` as id, u.`first_name` as first_name, u.`last_name` as last_name, u.`username` as username
FROM `users` u JOIN
`projects` p
ON p.`client_id` = u.`client_id` AND p.id = 9 LEFT OUTER JOIN
`project_users` pu
ON u.`id` = pu.`user_id`
WHERE u.`user_type` not in ('Admin', 'Owner') and
pu.user_id is NULL;

关于php - 这个 MySQL 查询(使用 LEFT OUTER JOIN)有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21006572/

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