sql - 多个 JOIN 表和 WHERE AND 遇到问题
问题描述
我的 SQL 课一直做得很好,但无论出于何种原因,我仍然无法理解如何将 JOIN 与 WHERE 和 AND 一起使用。
我需要帮助的问题是:编写一个显示两列的 SELECT 语句——投球手 id、名字、姓氏和原始分数。您必须使用表连接。包括在 Imperial Lanes 的原始得分为 175 或更高的投球手。使用正确的列标题。按原始分数降序对结果进行排序。
我的代码是:
SELECT bowlerid || ' ' || b.bowlerfirstname || ' ' || b.bowlerlastname "Bowler",
bs.rawscore "Raw Score"
FROM bowlers b JOIN bowler_scores bs USING (bowlerid)
JOIN tourney_matches tm USING (matchid)
JOIN tournaments USING (tourneyid)
WHERE bs.rawscore >= 175
AND tourneylocation = 'Imperial Lanes'
ORDER BY "Raw Score" DESC;
我不确定我是否正确加入表格,因为我的结果不正确。
表格- 列
Bowler_scores - matchid、gamenumber、bowlerid、rawscore
保龄球- Bowlerid, bowlerlastname, bowlerfirstname, teamid
match_games - matchid、gamenumber、winingteamid
比赛- tourneyid, tourneydate, tourneylocation
tourney_matches - matchid, tourneyid
我留下了一些列,因为代码不需要它们。
我在链接 3 和 4 中添加了实际的数据库代码。
解决方案
似乎制作原始示例的人发布了不正确的结果,这就是为什么我认为我的输出不正确的原因。在交叉检查了实际数据后,我得出的结论是我的代码是正确的。
SELECT bowlerid || ' ' || bowlerfirstname || ' ' || bowlerlastname "Bowler",
rawscore "Raw Score"
FROM tournaments JOIN tourney_matches USING (tourneyid)
JOIN bowler_scores USING (matchid)
JOIN bowlers USING (bowlerid)
WHERE rawscore >= 175
AND tourneylocation = 'Imperial Lanes'
ORDER BY "Raw Score" DESC;
推荐阅读
- python - Python3:将文本输出分成单独的变量
- android - 远程二进制共享 nativeLibrary 未提取
- sparql - Wikidata SPARQL:获取子类但也返回父类
- c - 在 for 循环中重命名 C 中的 char 变量
- html - 我应该为自定义 datePicker 添加什么标签?
- python - 使用天空场的脚本的无效结果
- azure - 未定义 Azure ARM 模板?
- python - 使用熊猫的空白excel导出
- python - 如何使用 python 中的 Plotly 库或任何可以在浏览器上获取结果的模块将多个 csv 文件放到图形上?
- amazon-web-services - Amazon.Transfer.Model.InvalidRequestException:无法为逻辑 HomeDirectoryType 设置 HomeDirectory