Запрос, который включает в себя десятки объединений в одной таблице, не возвращая все результаты - PullRequest
0 голосов
/ 22 сентября 2019

У меня есть запрос, который соединяется с одной и той же таблицей более одного раза и требует более двух десятков псевдонимов таблиц.Тем не менее, он не возвращает все результаты.Вот запрос.

Select 
bracketID_1, bracketWins_1, a.logo as bracketID1_logo, bracketID_2, bracketWins_2, b.logo as bracketID2_logo, bracketID_3, bracketWins_3, c.logo as bracketID3_logo, 
bracketID_4, bracketWins_4, d.logo as bracketID4_logo, bracketID_5, bracketWins_5, e.logo as bracketID5_logo, bracketID_6, bracketWins_6, f.logo as bracketID6_logo, 
bracketID_7, bracketWins_7, g.logo as bracketID7_logo, bracketID_8, bracketWins_8, h.logo as bracketID8_logo, bracketID_9, bracketWins_9, i.logo as bracketID9_logo, 
bracketID_10, bracketWins_10, j.logo as bracketID10_logo, bracketID_11, bracketWins_11, k.logo as bracketID11_logo, bracketID_12, bracketWins_12, l.logo as bracketID12_logo, 
bracketID_13, bracketWins_13, m.logo as bracketID13_logo, bracketID_14, bracketWins_14, n.logo as bracketID14_logo, bracketID_15, bracketWins_15, o.logo as bracketID15_logo, 
bracketID_16, bracketWins_16, p.logo as bracketID16_logo, bracketID_17, bracketWins_17, q.logo as bracketID17_logo, bracketID_18, bracketWins_18, r.logo as bracketID18_logo,
bracketID_19, bracketWins_19, s.logo as bracketID19_logo, bracketID_20, bracketWins_20, t.logo as bracketID20_logo, bracketID_21, bracketWins_21, u.logo as bracketID21_logo,
bracketID_22, bracketWins_22, v.logo as bracketID22_logo, bracketID_23, bracketWins_23, w.logo as bracketID23_logo, bracketID_24, bracketWins_24, x.logo as bracketID24_logo,
bracketID_25, bracketWins_25, y.logo as bracketID25_logo, bracketID_26, bracketWins_26, z.logo as bracketID26_logo, bracketID_27, bracketWins_27, aa.logo as bracketID27_logo,
bracketID_28, bracketWins_28, ab.logo as bracketID28_logo, bracketID_29, bracketWins_29, ac.logo as bracketID29_logo, bracketID_30, bracketWins_30, ad.logo as bracketID30_logo

from YearlyPlayoffResults

join teams a on YearlyPlayoffResults.bracketID_1 = a.Abbreviation
join teams b on YearlyPlayoffResults.bracketID_2 = b.Abbreviation
join teams c on YearlyPlayoffResults.bracketID_3 = c.Abbreviation
join teams d on YearlyPlayoffResults.bracketID_4 = d.Abbreviation
join teams e on YearlyPlayoffResults.bracketID_5 = e.Abbreviation
join teams f on YearlyPlayoffResults.bracketID_6 = f.Abbreviation
join teams g on YearlyPlayoffResults.bracketID_7 = g.Abbreviation
join teams h on YearlyPlayoffResults.bracketID_8 = h.Abbreviation
join teams i on YearlyPlayoffResults.bracketID_9 = i.Abbreviation
join teams j on YearlyPlayoffResults.bracketID_10 = j.Abbreviation
join teams k on YearlyPlayoffResults.bracketID_11 = k.Abbreviation
join teams l on YearlyPlayoffResults.bracketID_12 = l.Abbreviation
join teams m on YearlyPlayoffResults.bracketID_13 = m.Abbreviation
join teams n on YearlyPlayoffResults.bracketID_14 = n.Abbreviation
join teams o on YearlyPlayoffResults.bracketID_15 = o.Abbreviation
join teams p on YearlyPlayoffResults.bracketID_16 = p.Abbreviation
join teams q on YearlyPlayoffResults.bracketID_17 = q.Abbreviation
join teams r on YearlyPlayoffResults.bracketID_18 = r.Abbreviation
join teams s on YearlyPlayoffResults.bracketID_19 = s.Abbreviation
join teams t on YearlyPlayoffResults.bracketID_20 = t.Abbreviation
join teams u on YearlyPlayoffResults.bracketID_21 = u.Abbreviation
join teams v on YearlyPlayoffResults.bracketID_22 = v.Abbreviation
join teams w on YearlyPlayoffResults.bracketID_23 = w.Abbreviation
join teams x on YearlyPlayoffResults.bracketID_24 = x.Abbreviation
join teams y on YearlyPlayoffResults.bracketID_25 = y.Abbreviation
join teams z on YearlyPlayoffResults.bracketID_26 = z.Abbreviation
join teams aa on YearlyPlayoffResults.bracketID_27 = aa.Abbreviation
join teams ab on YearlyPlayoffResults.bracketID_28 = ab.Abbreviation
join teams ac on YearlyPlayoffResults.bracketID_29 = ac.Abbreviation
join teams ad on YearlyPlayoffResults.bracketID_30 = ad.Abbreviation

Однако он возвращает только случайные годы и не в определенном порядке.Кроме того, когда я добавляю предложение where для возврата определенного года, некоторые годы работают, а другие нет, а пропущенные годы существуют в таблице.

1 Ответ

1 голос
/ 22 сентября 2019

Хотя @Larnu правильно, что вам нужно нормализовать ваши данные, тем временем вы можете найти проблему с данными, заменив JOINs на LEFT JOIN.Он покажет, какие столбцы имеют запись NULL, из-за чего ваши данные «пропадают».

Возможно, что это «ожидаемый» результат, если у вас есть нечетное числокоманд, некоторые скобки могут быть пропущены.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...