У меня есть 3 таблицы, которые я пытаюсь объединить с внутренними соединениями, но по какой-то причине они приводят к кучке повторяющихся результатов. Я разорвал свои волосы, пытаясь понять, что здесь происходит. Ниже таблицы я использую:Повторяющиеся данные, полученные в результате внутреннего соединения
Table:gameday.atbats
GameName Inning num b s o Batter Pitcher Result
-----------------------------------------------------------------------------------------
gid_2008_09_24_cinmlb_houmlb_1 1 1 2 3 1 457803 150116 Jay Bruce strikes out swinging.
gid_2008_09_24_cinmlb_houmlb_1 1 2 1 0 2 433898 150116 Jeff Keppinger lines out to right fielder Hunter Pence.
gid_2008_09_24_cinmlb_houmlb_1 1 3 3 1 2 458015 150116 Joey Votto singles on a line drive to right fielder Hunter Pence.
gid_2008_09_24_cinmlb_houmlb_1 1 4 2 3 3 429665 150116 Edwin Encarnacion called out on strikes.
gid_2008_09_24_cinmlb_houmlb_1 1 5 1 2 0 430565 459371 Kazuo Matsui singles on a line drive to right fielder Jay Bruce.
-----------------------------------------------------------------------------------------
Table: Gameday.pitches
GameName GameAtBatID Result
------------------------------------------------------
gid_2008_09_24_cinmlb_houmlb_1 1 Called Strike
gid_2008_09_24_cinmlb_houmlb_1 1 Ball
gid_2008_09_24_cinmlb_houmlb_1 1 Swinging Strike
gid_2008_09_24_cinmlb_houmlb_1 1 Ball
gid_2008_09_24_cinmlb_houmlb_1 1 Foul
gid_2008_09_24_cinmlb_houmlb_1 1 Foul
gid_2008_09_24_cinmlb_houmlb_1 1 Swinging Strike
gid_2008_09_24_cinmlb_houmlb_1 2 Ball
gid_2008_09_24_cinmlb_houmlb_1 2 In play, out(s)
gid_2008_09_24_cinmlb_houmlb_1 3 Called Strike
gid_2008_09_24_cinmlb_houmlb_1 3 Ball
--------------------------------------------------------
Table:batters
GameName id name_display_first_last
----------------------------------------------------------------------------------
gid_2008_09_24_cinmlb_houmlb_1 407783 Geoff Geary
gid_2008_09_24_cinmlb_houmlb_1 209315 David Newhan
gid_2008_09_24_cinmlb_houmlb_1 115629 LaTroy Hawkins
gid_2008_09_24_cinmlb_houmlb_1 113889 Darin Erstad
gid_2008_09_24_cinmlb_houmlb_1 457803 Jay Bruce
gid_2008_09_24_cinmlb_houmlb_1 433898 Jeff Keppinger
gid_2008_09_24_cinmlb_houmlb_1 458015 Joey Votto
gid_2008_09_24_cinmlb_houmlb_1 429665 Edwin Encarnacion
---------------------------------------------------------------------------
код я использую выглядит следующим образом:
SELECT gameday.atbats.event
, gameday.atbats.inning
, gameday.batters.name_display_first_last
, gameday.pitchers.name_display_first_last
, gameday.pitches.result
FROM gameday.atbats
inner join gameday.pitches on gameday.atbats.num = gameday.pitches.gameAtBatID
and gameday.pitches.gamename=gameday.atbats.gamename
inner join gameday.batters on gameday.atbats.batter = gameday.batters.ID
AND gameday.atbats.gamename = gameday.batters.gameName
where gameday.atbats.gamename = "gid_2008_09_24_cinmlb_houmlb_1"
текущие результаты кода в каждого игрока удвоенных свои результаты, например, если первый кляре в игре должны были вычеркнуть по 3 смолы, тогда текущий код выведет, что тесто вычеркивает дважды в первом тайма на 6 смол. Я присоединяюсь к ID игры и идентификаторам из каждой таблицы, но, похоже, все еще есть какая-то проблема.
я сузил к этому присоединиться 'внутренний РЕГИСТРИРУЙТЕСЬ gameday.pitches НА gameday.atbats.num = gameday.pitches.gameAtBatID И gameday.pitches.gamename = gameday.atbats.gamename', но я до сих пор не знаете, в чем проблема. Насколько я могу судить, все связано с тем, что должно быть. – Johnny