2017-04-20 130 views
0

- 編輯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將工作表連接以獲取關於它的詳細信息:標題...

我做後續/取消關注工作的功能

感謝所有

+1

你有一個包含你想要搜索的工作ID的表嗎? –

+1

爲什麼在結果中id_job 3的id 2?該表將id 1與它關聯。 –

+1

你想在第一列中做什麼?行號還是什麼? – Sam

回答

3

通常,您將有一個包含你要搜索的id_job值/匹配,像這樣第二個表:

has_jobs 

id_job | (other columns...) 
2 
3 

然後,你可能只是左加入has_jobsfollowing_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