我有一个包含比赛名称和结果的数据库。我正在尝试编写一个 sql 语句来确定所有特定名称的结果。问题是,根据比赛的地点,本地或公路,结果在不同的列中。例如
____________________________________________________________________
| home Runner | Road runner| road Outcome | home Outcome | ID |
--------------------------------------------------------------------
| Jerry | Brian | 323 | 350 | 1 |
--------------------------------------------------------------------
| Brian | Jerry | 259 | 265 | 2 |
正如你所看到的,如果我想为 Brian 拉结果,这变得很困难,因为他的结果可以在道路和主场之间切换。我想我可以存储一个包含所有与 brian 匹配的 id 的数组,然后以某种方式返回结果,具体取决于 brian 位于 (home, road) 的列 到目前为止,我已经完成了以下操作,但被困在底部
$getRunner = "select id from $db where homeRunner = brian union select id from $db where roadRunner = Brian" order by id asc;
$result=mysql_query($getRunner);
$id=array(); // this is to hold all the Id's that match
while($row = mysql_fetch_array($result)){
$id[]=$row['id'];
}
foreach ($id as $element){
$getOutcome = "select roadOutcome from $db where roadRunner = brian and id =$element";
$result2 = mysql_query($getOutcome);
while($row2 = mysql_fetch_array($result2)){
echo $row2['roadOutcome'];
echo '<br />';
}
这里有很多问题,我知道。如果可能的话,我想合并查询,更不用说让它工作了。我怎么能说“如果 homeRunner = brian 然后选择 homeOutcome,否则选择 roadOutcome where id = $element”?
最终,我试图在一个数组中返回答案,以便我可以绘制它。我正在用 PHP 写这个。谢谢你的帮助!