|
|
|
| Две таблицы.
Table 1
id item
Table 2
id item_id cost date
У item со времени изменяется цена, надо выбрать всё из Table 1 и также цену к нему из Table 2
отсортировав по последней дате в table 2.
SELECT * FROM table1 as t1
LEFT JOIN table2 as t2 on t2.item_id=t1.id
GROUP BY t1.id
ORDER BY t2.date DESC
;
|
Пробывал еще с MAX(t2.date). Но дату он мне даёт последнею а цену как и есть первую запись к данному id.
Что то упустил | |
|
|
|
|
|
|
|
для: VL
(27.06.2012 в 08:59)
| | А почему MAX(t2.date)? Цена меняется не путем обновления, а вставки новых значений? | |
|
|
|
|
|
|
|
для: cheops
(27.06.2012 в 17:50)
| | Да путем вставки новых значений. Какое условие мне добавить? | |
|
|
|
|
|
|
|
для: VL
(27.06.2012 в 08:59)
| |
SELECT T1.*, cost FROM table1 T1
LEFT JOIN( SELECT item_id, cost FROM table2
JOIN( SELECT item_id iid, max(date)dt FROM table2 GROUP BY item_id )T
ON item_id=iid AND date=dt )T2
ON id=item_id
|
| |
|
|
|
|
|
|
|
для: Sfinks
(28.06.2012 в 03:27)
| | Спасибо | |
|
|
|