私は、これまでに行った中で最も複雑な SQL クエリを混乱させています。これは、おそらくほとんどの人にとって非常に単純です (:
User、Skills、User_Skills の 3 つのテーブルがあります。そのフィールドは、かなり自明である必要があります。
自分の基準を満たすスキルを 1 つ以上持っている人を選びたい。
求めているスキルを持つユーザーを選択できますが、複数のスキルを照会するための構文がわかりません。
クエリを 1 つだけ使用したいので、GROUP_CONCAT を使用しようとしています。
ここに私のSQLがあります:
SELECT User_id, first_name, last_name, county, GROUP_CONCAT(CAST(Skill_id AS CHAR))
FROM User LEFT JOIN User_Skills ON User.id = User_Skills.User_id
LEFT JOIN Skills ON User_Skills.Skill_id = Skills.id GROUP BY User_id
User_id first_name last_name county GROUP_CONCAT(CAST(Skill_id AS CHAR))
1000 Joe Blow West Yorkshire 8,6,1,9,7,3,5,10
1001 Fred Bloggs COUNTY1 5,8,2,7,9
1003 asdf asdf1 Some County 10,8,2
スキル 5 と 9 を持つ人のみに検索を制限するにはどうすればよいですか?