0

データベーススキーマは次のとおりです。

Teams(teamID,teamName,home,leagueName)
Games(gameID,homeTeamID,guestTeamID,date)

teamIDチームが team1 と対戦したが、team2 と対戦しなかったすべての s を (SQL を使用して) 照会するにはどうすればよいですか。'team1 と team2 は列のデータ値teamNameですか?

4

2 に答える 2

0

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'
        )
于 2012-10-08T08:00:08.610 に答える
0

チームが 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 
于 2012-10-08T08:12:50.903 に答える