【发布时间】:2013-09-16 13:30:47
【问题描述】:
我有一个 MySQL 表,我在其中保持一对多的关系。该表用于存储足球统计程序的合作伙伴列表。一个玩家可以有 0、1 或 2 个伙伴。
例如:
___________________________________
| Table index | Partners | Players |
| 1 | 1 | John | - Singles, no partners
| 2 | 2 | John | - Doubles, John and Bob
| 3 | 2 | Bob | - Doubles, John and Bob
| 4 | 3 | Dave | - Roto doubles, Dave, Bob, John
| 5 | 3 | Bob | - Roto doubles, Dave, Bob, John
| 6 | 3 | John | - Roto doubles, Dave, Bob, John
| 7 | 4 | Dave | - Singles, no partners
____________________________________
我正在编写 PHP 脚本以从表中添加和检索合作伙伴,但我的查询遇到了问题。我了解玩家并想检索合作伙伴字段。我需要执行三个查询:
- 检查没有合作伙伴 - 单身人士;
- 检查特定合作伙伴 - 与“Dave”双打;
- 检查两个特定的合作伙伴 - 与“鲍勃和戴夫”双打;
如果条目存在,我想检索它,如果不存在,那么我会将该条目添加到表中。我遇到的麻烦之一是,例如,玩家“约翰”有三个条目,没有伙伴,一个伙伴,两个伙伴。如何指定只拉出条目 1 而不是 2 或 6?
我在这里搜索并找到了几个接近但不完全符合我需要的示例。这个mySQL: Querying one-to-many -table? 几乎可以满足我的需要,但并不完全。
任何帮助将不胜感激。
克里斯
【问题讨论】:
-
为什么最后一行,四个合伙人,意思是“单身没有合伙人”?
-
您只保留派生信息 - 这将难以维护。您是否还需要输入谁与谁合作的信息?在这种情况下,只需维护一个合作伙伴表,并通过查询得出每个玩家的合作伙伴数量。
-
抱歉,列标题“partners”最好命名为“partnerID”。它是指示伴侣关系的指标,而不是特定人拥有的伴侣数量。我的原始帖子可能具有误导性。
标签: php mysql one-to-many