我已经基于奥运创建了一个小型数据库,用于从中运行一些sql查询。我正在尝试生成一个表格,其中显示每个国家/地区的名称以及根据来自这些国家/地区的运动员获得的金牌,银牌和铜牌的总数。这是我的关系模型视图的屏幕截图:
这是我要运行的查询:
<h1>Olympics Database</h1>
<h3>Summary Information</h3>
<h4>Number of Olympic Athletes from United Kingdom</h4>
<?php
$conn = mysqli_connect('localhost', '#####', '#####') or die ('Could not connect:' . mysqli_error($conn));
echo 'Successfully Connected. <br/>';
mysqli_select_db($conn, '#####') or die('Database will not open');
echo 'Database Connected. <br/> <br/>';
$query2 = 'SELECT CountryAbbrev, (SELECT COUNT(CountryAbbrev) FROM athlete WHERE MedalID = 401 AND ath.CountryAbbrev = athlete.CountryAbbrev) AS Gold, (SELECT COUNT(CountryAbbrev) FROM athlete WHERE MedalID = 402 AND ath.CountryAbbrev = athlete.CountryAbbrev) AS Silver, (SELECT COUNT(CountryAbbrev) FROM athlete WHERE MedalID = 403 AND ath.CountryAbbrev = athlete.CountryAbbrev) AS Bronze FROM athlete AS ath';
$result2 = mysqli_query($conn, $query2) or die ('Invalid Query');
echo'<table><tr><th>Country Name</th><th>Gold</th><th>Silver</th><th>Bronze</th></tr>';
$row = mysqli_fetch_row($result2);
echo'<tr><td>' .$row[0].'</td><td>' .$row[1].'</td><td>' .$row[2].'</td><td>' .$row[3].'</td></tr>';
echo'</table>';
mysqli_close($conn);
?>
我得到的只是无效查询。按照我的关系模型视图,有谁能帮我找出如何在一个表格中显示每个国家/地区赢得的金牌,银牌和铜牌的总数?
由于您正在选择表中的未定义字段,因此原始SQL查询返回的查询无效。即athlete
table没有名为的字段MedalName
。
您可以使用以下SQL查询,通过了解每种奖牌类型的ID,我认为分别对于金牌,银牌和铜牌分别为1,2,3。
SELECT CountryAbbrev,
(SELECT COUNT(CountryAbbrev) FROM athlete WHERE MedalID = 1 AND ath.CountryAbbrev = athlete.CountryAbbrev) AS Gold,
(SELECT COUNT(CountryAbbrev) FROM athlete WHERE MedalID = 2 AND ath.CountryAbbrev = athlete.CountryAbbrev) AS Silver,
(SELECT COUNT(CountryAbbrev) FROM athlete WHERE MedalID = 3 AND ath.CountryAbbrev = athlete.CountryAbbrev) AS Bronze
FROM athlete AS ath
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句