【发布时间】:2018-05-03 04:04:43
【问题描述】:
这是一道作业题。
我有一个团队:
teamid | teamcity | name
桌游:
gameid | date | gamecity
还有一个玩过的桌面游戏
gameid | teamid | teamscore
我想要做的是只选择两支球队所在城市都不是比赛所在城市的比赛。
例如,如果多伦多猛龙队和芝加哥公牛队在纽约打了一场比赛,那将会被选中。
我尝试了几种不同的方法,包括:
WITH TEMP as (SELECT * FROM GAME NATURAL JOIN
GAME_PLAYED NATURAL JOIN TEAM WHERE teamcity != gamecity)
SELECT gameid, gamecity, teamcity, teamname, teamscore FROM TEMP GROUP BY
gameid, gameid HAVING COUNT(gameid) > 1;
和:
SELECT gameid, gamecity, teamcity, teamname, teamscore FROM GAME
NATURAL JOIN GAME_PLAYED NATURAL JOIN TEAM WHERE teamcity != gamecity
GROUP BY gameid HAVING COUNT(gameid) > 1;
我不确定从这里去哪里。最后一个给我一个错误:“列“teams.teamcity”必须出现在 GROUP BY 子句中或用于聚合函数中”。
【问题讨论】:
标签: database postgresql select