2014-11-25 1 views
0

Этот запрос выглядит следующим образом:Не знаете, как обрабатывать довольно Приглашена запрос с PHP/MySQL

INSERT INTO `results` (`class_id`, `rider_id`, `schedule_id`, `finish`, `points`, `season_id`) 
SELECT DISTINCT racedata.class_id, riders.id as rider_id, schedule.id as schedule_id, racedata.cf_finish, racedata.main_points, schedule.season_id 
FROM (racedata LEFT JOIN riders ON racedata.ridername = riders.ridername) 
INNER JOIN `schedule` ON `schedule`.date = STR_TO_DATE(`racedata`.event_date, '%m/%d/%Y') WHERE cf_finish > 0; 

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

Прямо сейчас я хранил season_id в таблице schedule, но не хочу больше использовать это поле. Я пытаюсь упростить переднюю часть приложения, что, в свою очередь, усложняет бэкэнд.

Я хочу использовать EXTRACT(YEAR FROM date) = EXTRACT(YEAR FROM NOW()), чтобы получить текущий год, он работает там, где утверждения замечательные, но я не использовал его в этом контексте прежде.

Должен ли я пытаться сделать вложенный выбор в моем выборе, чтобы получить данные, которые я хочу?

+1

Не видя данные и желаемый результат (забудьте о вставке на данный момент) эта проблема возникает излишне сложной. – Strawberry

+0

Я получу дамп данных позже вечером. Места должны быть. – indymx

ответ

1
INSERT INTO `results` 
    (`class_id`, `rider_id`, `schedule_id`, 
    `finish`, `points`, `season_id`) 
SELECT DISTINCT racedata.class_id, riders.id as rider_id, 
    schedule.id as schedule_id, racedata.cf_finish, 
    racedata.main_points, season.season_id 
FROM racedata 
LEFT JOIN riders 
ON racedata.ridername = riders.ridername 
INNER JOIN `schedule` 
ON `schedule`.date = STR_TO_DATE(`racedata`.event_date, '%m/%d/%Y') 
INNER JOIN `seasons` 
ON `seasons`.date = EXTRACT(YEAR FROM NOW()) 
AND `seasons`.date = EXTRACT(YEAR FROM `schedule`.date) 
WHERE cf_finish > 0; 
+0

Я попробую, когда у меня появится шанс. Спасибо – indymx

Смежные вопросы