gpt4 book ai didi

php - mysql 左连接和并集?

转载 作者:行者123 更新时间:2023-11-29 14:37:33 24 4
gpt4 key购买 nike

我有这个左连接查询来向特定主管的指定组中的员工显示所有职位列表,效果很好

SELECT * 
FROM jobs j
LEFT JOIN groups g ON g.group_number = j.relevant_group
WHERE j.relevant_group = 0
OR (g.supervisor_id = j.job_lister_id AND g.employee_id = '$myVar')

但是,现在我需要添加一个选择,以便发布主管也可以看到它,我设置了 $ myVar 来保存查看者的 session ID。我试过这个

SELECT * 
FROM jobs j
LEFT JOIN groups g ON g.group_number = j.relevant_group
WHERE j.relevant_group = 0
OR (g.supervisor_id = j.job_lister_id AND g.employee_id = '$myVar')
OR (j.job_lister_id = '$myVar')

但是当主管登录时,他看到该列表被多次发布(重复数量始终等于群组中的人数)我该如何解决这个问题?

最佳答案

您实际上需要将 groups 中的任何字段添加到结果集中吗?因为听起来您只是使用groups来识别要返回哪些jobs记录?如果是这种情况,那么您可能应该放弃 JOIN,而改用子查询。例如,您可以这样写:

SELECT * 
FROM jobs j
WHERE j.job_lister_id = '$myVar'
OR j.relevant_group = 0
OR EXISTS
( SELECT 1
FROM groups g
WHERE g.group_number = j.relevant_group
AND g.supervisor_id = j.job_lister_id
AND g.employee_id = '$myVar'
)
;

关于php - mysql 左连接和并集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8704095/

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