MySQL查询没有返回正确
问题描述:
- 编辑MySQL查询没有返回正确
我仍然没有得到它的一些原因。我会详细说明我的问题。
工作表
id, title ... all details
1, title1,...
2, title2,...
3, title3,...
4, title4,...
job_user表
id,id_job,id_user
1,1,1
2,2,3
3,3,3
4,4,4
following_job表
id,id_job,id_user
1, 1, 3
所以基本上,用户3有2个职位(2,3),而他追踪作业1所以,如果我以用户3的身份登录,我想获得用户<> 3的所有详细信息(只是要求nt,我需要做)。 我会得到的结果
id,id_job,id_user
1,1,1
4,4,4
我的目标结果是:
id,title..., following_id
1,title1,...,1
4,title4,...,0
的following_id将上述添加的结果,因为用户3接着id_job 1所以其following_id = 1,否则= 0。而id_job 1,4将工作表连接以获取关于它的详细信息:标题...
我做后续/取消关注工作的功能
感谢所有
答
通常,您将有一个包含你要搜索的id_job
值/匹配,像这样第二个表:
has_jobs
id_job | (other columns...)
2
3
然后,你可能只是左加入has_jobs
到following_job
得到的结果你想:
SELECT t2.id
t1.id_job,
CASE WHEN t2.id_job IS NULL THEN 0 ELSE 1 END AS following_id
FROM has_jobs t1
LEFT JOIN following_job t2
ON t1.id_job = t2.id_job
如果你没有一个实际的has_jobs
表,那么你可以使用内嵌表代替:
SELECT t2.id
t1.id_job,
CASE WHEN t2.id_job IS NULL THEN 0 ELSE 1 END AS following_id
FROM
(
SELECT 2 AS id_job
UNION ALL
SELECT 3
-- add more IDs here if wanted
) t1
LEFT JOIN following_job t2
ON t1.id_job = t2.id_job
+0
Biegeleisn:谢谢你的回答。我一直在努力,但没有运气。你可以看看我的帖子,我编辑。非常感谢 – trinhdh
你有一个包含你想要搜索的工作ID的表吗? –
为什么在结果中id_job 3的id 2?该表将id 1与它关联。 –
你想在第一列中做什么?行号还是什么? – Sam