Я работаю над проектом Rails3 с базами данных MySql (локальная) и Postgresql (Heroku).
Мне нужно задать условия для ЛЕВОГО ВНЕШНЕГО СОЕДИНЕНИЯ, но я не знаю, как это сделать.
У меня есть 2 таблицы TRAININGS и TRAINING_HISTORIES.
Я хочу получить все записи TRAININGS и добавить последнюю действительную (также известную как завершенную) связанную запись TRAINING_HISTORIES.
id name order_by
5 A 1
6 B 2
7 C 3
id training_id finished_at score
43 5 2011-06-06 10
44 5 null null
45 6 2011-07-07 11
46 6 2011-08-08 14
47 6 null null
48 6 2011-09-09 18
49 6 null null
50 7 null null
51 7 2011-10-10 19
Вот мой SQL-запрос:
SELECT tc.id, tc.name, tc.order,
th.id as history_id, th.finished_at, th.score
FROM trainings tc
LEFT OUTER JOIN training_histories th ON th.training_id = tc.id
WHERE tc.id > 4
AND tc.id < 8
GROUP BY tc.id
ORDER BY tc.order_by ASC, tc.id ASC
id name order history_id finished_at score
5 A 1 43 2011-06-06 10
6 B 2 45 2011-07-07 11
7 C 3 50 null null
id name order history_id finished_at score
5 A 1 43 2011-06-06 10
6 B 2 48 2011-09-09 18
7 C 3 51 2011-10-10 19
Любые предложения действительно приветствуются !
Спасибо
РЕДАКТИРОВАТЬ: Если кто-то может ответить по части Rails, это тоже было бы здорово; -)
Как преобразовать запрос SQL в запрос Active Record Rails?