php – 加入表mysql – 没有双重迭代

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了php – 加入表mysql – 没有双重迭代脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
让我首先说这应该一个相对简单的问题,这是由于糟糕的数据库设计(不是我),并且说我也不是 mysql的专家而变得不必要.

考虑以下

表格表

php – 加入表mysql – 没有双重迭代

请注意列homeiD和visITorID如何包含团队名称而不是实际的teamiD

为了解决这个问题,我创建了一个包含teamID和teamName的列的新表,如下图所示.

表队

php – 加入表mysql – 没有双重迭代

我的问题

对于BOTH主队和客场球队,我必须从桌上球队获得teamID

所以我创建了Teams表和这个简单的脚本:

SELECT schedule.*,团队.*
从日程安排
JOIN团队ON schedule.homeID = teams.teamName OR schedule.visitorID = teams.teamName
WHERE schedule.gameID = 411
LIMIT 1 #added Limit1否则代码生成

输出MysqL脚本

限制1

php – 加入表mysql – 没有双重迭代

请注意上面如何仅为1个具有限制1的团队生成teamID

无限制声明(双重迭代)

php – 加入表mysql – 没有双重迭代

请注意上面如何为两个团队检索teamID.问题是它做了一次双重迭代.

TLDR;以上提出了以下问题

>首先,该脚本将为主队生成两个输出,为客队生成一个输出.然而,我不能指望.
>作为问题1的解决方法 – 我添加限制1我得到的限制问题虽然它只返回一个teamID(我想是预期的)

如何通过单次迭代从表团队获得两个teamID?希望这有道理……

额外

带有硬编码团队名称的应用程序演示看起来像这样(只是想知道他们想要实现的目标)

php – 加入表mysql – 没有双重迭代

解决方法

听起来你想加入两次团队来安排.

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;

脚本宝典总结

以上是脚本宝典为你收集整理的php – 加入表mysql – 没有双重迭代全部内容,希望文章能够帮你解决php – 加入表mysql – 没有双重迭代所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。