如何根据单列的ids从另一个表中选择结果?

时间:2014-05-18 21:39:55

标签: sql

嗨我需要把它变成字符串。我有2个这样的表:

用户
id - name - sport
1 - 约翰 - 1,2,3
2 - 彼得 - 2,3

运动

id - 运动
1 - 壁球
2 - 足球
3 - 篮球

字符串中的预期结果:
[name] =>约翰
[sport] =>壁球,足球,篮球

[name] =>彼得
[sport] =>足球,篮球

1 个答案:

答案 0 :(得分:1)

这是many to many关系。而且,您的users表格甚至不在1NF中。详细了解M:M关系Here(或)Here

让您的表格结构为

users (Here make `id` as primary key)

id - name 
1 - John 
2 - Peter

usersport (Here make `id` as foriegn key referencing to `users` `id` column)

id sportnum
1  1
1  2
1  3
2  2
2  3


sportsdetail

id - sport
1 - squash
2 - football
3 - basketball 

现在,要获得所需的结果,您可以进行如下查询

select u.name,sd.sport
from users u
inner join usersport us on u.id = us.id
inner join sportsdetail sd on us.sportnum = sd.id