gpt4 book ai didi

php - mysql 带有额外条件的连接

转载 作者:行者123 更新时间:2023-11-29 10:49:35 25 4
gpt4 key购买 nike

我正在 PHP 脚本中运行此查询。我有一张纸和用户表。如果每篇论文都有一个所有者用户。每个用户都有一个公司 ID。我想要的是具有相同公司 ID 的用户应该看到彼此的论文,所以我尝试通过 paper_id 和 user_id 检查此权限。

papers
---------
id
user_id
paper_details


users
----------
user_id
company_id
user_details

为了检查是否存在论文和用户的结果,我在下面尝试了查询。进行此查询时,我只有 $user_id_variable$paper_id_variable 变量。但是我无法将 ** $user_id_variable** 放入查询中的任何位置。

SELECT * FROM papers
INNER JOIN
users u on u.user_id= papers.user_id
WHERE
papers.user_id in (
SELECT user_id FROM users WHERE users.company_id=u.company_id
)
AND papers.id = '$paper_id_variable'

编辑样本数据和预期结果:

--papers--
id | user_id
1 | 1


--users--
user_id | company_id
1 | 10
2 | 10
3 | 11

根据上表预期结果应该是:

when paper id = 1 and user id 1 -> result count  = 1
when paper id = 1 and user id 2 -> result count = 1
when paper id = 1 and user id 3 -> result count = 0

感谢您的宝贵时间,

最佳答案

您可以使用此查询:

SELECT *
FROM papers
INNER JOIN users u on u.user_id=papers.user_id
WHERE u.company_id = (SELECT company_id FROM users WHERE user_id = '$user_id_variable')
AND papers.paper_id = '$paper_id_variable'

注意:正在保存company_id在你的论文表中可能是另一个想法。不要忘记创建索引,也不要使用像 user_id, paper_id 这样的字段名称。 。只需使用 id 。对于 PHP 变量也是如此,使用 $paperId instead$paper_id_variable 。它们不是必须的,而是良好的做法。

关于php - mysql 带有额外条件的连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43974166/

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