データベーススキーマは次のとおりです。
Teams(teamID,teamName,home,leagueName)
Games(gameID,homeTeamID,guestTeamID,date)
teamID
チームが team1 と対戦したが、team2 と対戦しなかったすべての s を (SQL を使用して) 照会するにはどうすればよいですか。'team1 と team2 は列のデータ値teamName
ですか?
データベーススキーマは次のとおりです。
Teams(teamID,teamName,home,leagueName)
Games(gameID,homeTeamID,guestTeamID,date)
teamID
チームが team1 と対戦したが、team2 と対戦しなかったすべての s を (SQL を使用して) 照会するにはどうすればよいですか。'team1 と team2 は列のデータ値teamName
ですか?
HomeTeam
またはのないゲームはないと仮定しGuestTeam
ます。これを試して、
SELECT a.gameID,
b.TeamName AS HomeTeam,
c.TeamName AS GuestTeam,
a.`date`
FROM GAMES a
INNER JOIN Teams b
ON a.homeTeamID = b.teamID
INNER JOIN Teams c
ON a.guestTeamID = c.teamID
WHERE (
b.TeamName = 'Team1' AND
c.teamName <> 'Team2'
)
OR
(
c.TeamName = 'Team1' AND
b.teamName <> 'Team2'
)
チームが team1 と対戦したが、team2 と対戦しなかったすべての teamID
SELECT t1.teamName AS 'Home', t2.TeamName AS 'Guest', g.Date
FROM
(
SELECT *
FROM Games
WHERE (homeTeamID = 'Team 1' OR guestTeamID = 'Team 1')
AND (homeTeamID <> 'Team 2' OR guestTeamID <> 'Team 1')
) g ON t.teamID = hg.homeTeamID
INNER JOIN teams t1 ON g.homeTeamID = t1.teamId
INNER JOIN teams t2 ON g.guestTeamID = t2.teamId