让我首先说这应该是一个相对简单的问题,这是由于糟糕的数据库设计(不是我),并且说我也不是mysql的专家而变得不必要.
考虑以下
表格表
请注意列homeID和visitorID如何包含团队的名称而不是实际的teamID
为了解决这个问题,我创建了一个包含teamID和teamName的列的新表,如下图所示.
表队
我的问题
对于BOTH主队和客场球队,我必须从桌上球队获得teamID
所以我创建了Teams表和这个简单的脚本:
SELECT schedule.*,团队.*
从日程安排
JOIN团队ON schedule.homeID = teams.teamName OR schedule.visitorID = teams.teamName
WHERE schedule.gameID = 411
LIMIT 1 #added Limit1否则代码生成行
限制1
请注意上面如何仅为1个具有限制1的团队生成teamID
无限制声明(双重迭代)
请注意上面如何为两个团队检索teamID.问题是它做了一次双重迭代.
TLDR;以上提出了以下问题
>首先,该脚本将为主队生成两个输出,为客队生成一个输出.然而,我不能指望.
>作为问题1的解决方法 – 我添加限制1我得到的限制问题虽然它只返回一个teamID(我想是预期的)
题
如何通过单次迭代从表团队获得两个teamID?希望这有道理……
额外
带有硬编码团队名称的应用程序演示看起来像这样(只是想知道他们想要实现的目标)
解决方法:
听起来你想加入两次团队来安排.
SELECT s.*,
th.*,
ta.*
FROM schedule s
INNER JOIN teams th
ON s.homeid = th.teamname
INNER JOIN teams ta
ON s.visitorid = ta.teamname
WHERE s.gameid = 411;
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。