2017-10-17 53 views
3

我有3 tables join我能得到期望的結果對於其爲具有ids138140爲什麼我的連接查詢是不是給預期的結果爲三個表

2 tables問題,141

這裏是我的查詢(獲取所需的結果)

SELECT distinct u.* 

from jobs_applied_by_jobseeker_for_employer jbs 

Left join user_details u on u.user_id = jbs.employee_id 

這裏是演示http://sqlfiddle.com/#!9/360836/1

現在我想加入第三個表來獲得CONCATENATEDskillsString像(HTML,CSS,MySQL和PHP)

這裏是查詢(3個結果預計只獲得1)

SELECT distinct u.*,GROUP_CONCAT(uskill.skills) skills 

from jobs_applied_by_jobseeker_for_employer jbs 

Left join user_details u on u.user_id = jbs.employee_id 

left join user_skills uskill on u.user_id = uskill.user_id 

這裏是演示http://sqlfiddle.com/#!9/360836/3

請幫我拿到3個結果與skills

在此先感謝!

+1

你實際上獲得了3個結果'技能',只是你的'GROUP_CONCAT'顯示給你1行...刪除它,你將有3個想要的'ID' ...之後,改變你的'組concat '爲每個用戶提供1行技能 – Veljko89

+0

@ Veljko89,你是'正確的',但現在我得到**每個結果3次**爲什麼演示:http://sqlfiddle.com/#!9/360836/20? – EaB

+0

您需要GROUP BY! – jarlh

回答

2

下面的查詢可以解決你的問題

SELECT u.*,GROUP_CONCAT(distinct uskill.skills) skills from jobs_applied_by_jobseeker_for_employer jbs Left join user_details u on u.user_id = jbs.employee_id left join user_skills uskill on u.user_id = uskill.user_id group by u.user_id

你需要使用group by得到不同用戶的詳細信息,並添加內GROUP_CONTACT不同的關鍵字獲得不同的技能。

+0

偉大的工作正常! – EaB

0

您需要DISTINCT與GROUP_CONCAT這樣

 SELECT distinct u.*,GROUP_CONCAT(DISTINCT uskill.skills) skills 

     from jobs_applied_by_jobseeker_for_employer jbs 

     Left join user_details u on u.user_id = jbs.employee_id 

     left join user_skills uskill on u.user_id = uskill.USER_ID 
相關問題