У меня есть таблицы, состоящие изподзапросов для каждого события в таблице
- гонки
-race_id
-athlete_id
-местной
2 . приз
-race_id
-местная
-Деньги
теперь мне нужно выполнить запрос для каждой гонки регистрирующей призовые деньги за первое, второе и третье место ?? Я знаю, как получить результаты для всех гонок для всех мест:
SELECT
*
FROM
prize
GROUP BY race_id , place;
однако, мне нужно заголовки столбцов, которые будут отображаться в качестве такого
RACE_ID | ПЕРВЫЙ | ВТОРОЙ | THIRD
Я попытался запустить этот следующий SQL, однако, получить сообщение об ошибке «ErrorCode: 1242. Subquery возвращает более 1 строки» SELECT race_id, «First», «Second», Third 'FROM prize WHERE' First ' = (ВЫБРАТЬ ДЕНЬГИ ОТ ПРИЕМА WHERE место IN (1)) И ГДЕ «Второе» = (ВЫБЕРИТЕ ДЕНЬГИ ОТ ПРИЗЫРА ГДЕ МЕСТО В (2)) И ГДЕ «Третий» = (ВЫБЕРИТЕ ДЕНЬГИ от приза ГДЕ место В (3)) ЗАКАЗАТЬ BY race_id; Я понимаю, что подзапросы требуют, чтобы операторы были скалярными, поэтому означает ли это, что мне нужно будет запускать отдельные подзапросы для каждой расы?
То, что вы пытаетесь сделать, часто называют «стержнем». –
@jimmytiler, я не понял, почему и не принял ответ – radar
извините радар. хотя ваш ответ действительно дает мне нужные результаты, мне нужно, чтобы он был в форме запроса. Я опубликовал другое сообщение в этом столбце с SQL, которого я пытаюсь достичь. Я так потерялся на этом? – jimmytiler