1

2012 年夏季大会のリスト、各スポーツ名、および競技が開催されたそのスポーツの分野数は?

これが私が得たものですが、あいまいな答えで返されます。私は何を間違っていますか?助けてください..

SELECT
    sport_name as "Sport Name",
    COUNT(discipline_code) as "Number of Disciplines"
FROM
    GAMES.SPORT,
    GAMES.GAMESDISCIPLINE,
    GAMES.SUMMERGAMES
WHERE
    sg_year = 2012
GROUP BY
    sport_name;
4

1 に答える 1

3

3 つのテーブル間に結合がないため、デカルト積が得られます。これを明確にするために、ANSI 結合構文に切り替えてみてください。テーブル間の結合を形成する実際の列名を入力する必要があります。私はここで推測しています:

SELECT
    s.sport_name as "Sport Name",
    COUNT(gs.discipline_code) as "Number of Disciplines"
FROM GAMES.SUMMERGAMES sg
JOIN GAMES.GAMESDISCIPLINE gd ON gd.games_id = sg.games_id
JOIN GAMES.SPORT s ON s.discipline_id = gd.discipline_id
WHERE
    sg.sg_year = 2012
GROUP BY
    s.sport_name;
于 2012-09-11T14:26:05.200 に答える