mysql – 从’多对多’SQL关系中选择*
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了mysql – 从’多对多’SQL关系中选择*,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1405字,纯文字阅读大概需要3分钟。
内容图文
我还在学习SQL,我的大脑很难用这个.
说我有3张桌子:
teams
players
和teams_players作为我的链接表
我想要做的就是运行一个查询来让每个团队和玩家参与其中.
我试过这个:
SELECT *
FROM teams
INNER JOIN teams_players
ON teams.id = teams_players.team_id
INNER JOIN players
ON teams_players.player_id = players.id
但它为每支球队的每名球员返回了一个单独的一行.加入是正确的方法吗?还是我应该做其他事情?
—————————————–编辑
好的,所以从我听到的情况来看,这并不一定是一种糟糕的方式.在进行循环时,我只需要按团队对数据进行分组.
我还没有尝试过提供的修改过的SQL语句,但今天我会回复你.
要回答关于结构的问题 – 我想我并没有考虑返回的行结构,这是导致我混淆的一部分.在这种特殊情况下,每个团队仅限4名玩家(或更少),所以我想对我有用的结构如下:
teams.id, teams.name, players.id, players.name, players.id, players.name, players.id, players.name, players.id, players.name,
1 Team ABC 1 Jim 2 Bob 3 Ned 4 Roy
2 Team XYZ 2 Bob 3 Ned 5 Ralph 6 Tom
解决方法:
好的,这是一个猜测,但你想要一个团队和团队中的球员列表在一排
怎么样
SELECT t.id, GROUP_CONCAT(p.id)
FROM teams t
INNER JOIN teams_players tp
ON t.id = tp.team_id
INNER JOIN players p
ON tp.player_id = p.id
GROUP BY t.id
手册可能有助于http://dev.mysql.com/doc/refman/5.6/en/group-by-functions.html#function_group-concat
内容总结
以上是互联网集市为您收集整理的mysql – 从’多对多’SQL关系中选择*全部内容,希望文章能够帮你解决mysql – 从’多对多’SQL关系中选择*所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。