Php Sql匹配多个条件,按最差技能对用户进行分组
大家好。 我需要根据参与者的5项最差技能对他们进行分组,以便创建教室 我还需要知道,他们生活在世界的不同地区(美洲、欧洲和亚洲) 我需要在时区彼此距离不太远的地方(美洲和欧洲的一些国家,亚洲和欧洲的其他国家)混合搭配它们 我有160名参与者,我需要创建12个教室 参与者表:Php Sql匹配多个条件,按最差技能对用户进行分组,php,mysql,sql,arrays,laravel,Php,Mysql,Sql,Arrays,Laravel,大家好。 我需要根据参与者的5项最差技能对他们进行分组,以便创建教室 我还需要知道,他们生活在世界的不同地区(美洲、欧洲和亚洲) 我需要在时区彼此距离不太远的地方(美洲和欧洲的一些国家,亚洲和欧洲的其他国家)混合搭配它们 我有160名参与者,我需要创建12个教室 参与者表: id name country_id ------------------ 1 | name | 8 | 2 | name2 | 3 | 3 | name | 4 | 4 | name2 | 8 | and so on
id name country_id
------------------
1 | name | 8 |
2 | name2 | 3 |
3 | name | 4 |
4 | name2 | 8 |
and so on....
国家表:
id name
------------------
1 | Japan |
2 | USA |
3 | Australia |
4 | UK |
and so on....
技巧
id name
------------------
1 | skill1 |
2 | skill2 |
3 | skill3 |
4 | skill4 |
and so on....
参与者技能表:
participant_id skill_id
------------------
1 | 2 |
1 | 4 |
1 | 3 |
1 | 5 |
1 | 9 |
2 | 1 |
2 | 4 |
2 | 3 |
2 | 6 |
2 | 9 |
3 | 2 |
3 | 7 |
3 | 8 |
3 | 5 |
3 | 9 |
and so on....
理想情况下,结果会是这样:
group_id participant_id country_id
----------------------------------
1 | 5 | 1 |
1 | 63 | 4 |
1 | 71 | 5 |
1 | 95 | 4 |
1 | 18 | 5 |
1 | 83 | 8 |
1 | 44 | 1 |
1 | 4 | 8 |
1 | 73 | 5 |
1 | 36 | 12 |
1 | 53 | 12 |
1 | 12 | 8 |
1 | 21 | 5 |
1 | 10 | 4 |
2 | 34 | 13 |
2 | 22 | 13 |
2 | 2 | 15 |
and so on...
你知道怎么让它工作吗
非常感谢,非常高兴^^
E
**更新
通过运行此SQL查询,我成功地选择了最差的5项技能:
select p.id, p.name, s.id from `participants` p
left join `regions` r on p.`region_id` = r.`id`
left join `participant_skill` ps on p.`id` = ps.`participant_id`
left join skills s on ps.`skill_id` = s.`id`
where ps.`rank` > 11
现在,我不知道如何根据参与者最差的技能和地区将他们匹配在一起。
这是一堆桌子。
我希望这有帮助
)() 您应该尝试自己编写代码。之后,如果你仍然有问题,那么发布你尝试过的内容,清楚地解释哪些不起作用,并提供一个解决方案。读一个好问题。一定要阅读和阅读。我只是不知道如何做到这一点,我自己。。。因此,目前还没有任何代码可供测试或复制:)你如何知道哪些技能最差?他们填写了一份调查问卷。我用php对它们进行数字化和排序,然后将它们存储在pivot表中。请看-我并不是假装这个np完全问题的解决方案很简单,但至少数据集相当小。您应该尝试自己编写代码。之后,如果你仍然有问题,那么发布你尝试过的内容,清楚地解释哪些不起作用,并提供一个解决方案。读一个好问题。一定要阅读和阅读。我只是不知道如何做到这一点,我自己。。。因此,目前还没有任何代码可供测试或复制:)你如何知道哪些技能最差?他们填写了一份调查问卷。我用php对它们进行数字化和排序,然后将它们存储在pivot表中。请看,我并不是假装这个np完全问题的解决方案很简单,但至少数据集相当小。