【发布时间】:2014-06-29 18:46:14
【问题描述】:
我的表与player-s 与skill-s 存在多对多关系
目标是通过单个查询列出玩家及其“前 3 项技能”。
create table player(
id int primary key
);
create table skill(
id int primary key,
title varchar(100)
);
create table player_skills (
id int primary key,
player_id int,
skill_id int,
value int
);
查询:
SELECT
p.id,
group_concat(s.title SEPARATOR ', ') as skills
FROM player p
LEFT JOIN player_skills ps ON ps.player_id = p.id
LEFT JOIN skill s ON s.id = ps.skill_id
WHERE ps.value > 2
-- skills limit 3 some how ...
group by p.id
order by s.id
-- expected result
-- player_ID, skills
-- 1 , 'one'
-- 2 , 'one'
-- 3 , 'two, three, four'
正如您在小提琴中看到的那样,查询结果仅缺少 3 个技能的限制。
我尝试了几种子查询的变体.. 连接等等,但没有任何效果。
【问题讨论】:
-
你可以在这里得到解决方案stackoverflow.com/questions/1522509/…
标签: mysql group-concat