Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Выборка
 
 автор: VL   (27.06.2012 в 08:59)   письмо автору
 
 

Две таблицы.
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.

Что то упустил

  Ответить  
 
 автор: cheops   (27.06.2012 в 17:50)   письмо автору
 
   для: VL   (27.06.2012 в 08:59)
 

А почему MAX(t2.date)? Цена меняется не путем обновления, а вставки новых значений?

  Ответить  
 
 автор: VL   (28.06.2012 в 01:54)   письмо автору
 
   для: cheops   (27.06.2012 в 17:50)
 

Да путем вставки новых значений. Какое условие мне добавить?

  Ответить  
 
 автор: Sfinks   (28.06.2012 в 03:27)   письмо автору
 
   для: 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

  Ответить  
 
 автор: VL   (28.06.2012 в 05:15)   письмо автору
 
   для: Sfinks   (28.06.2012 в 03:27)
 

Спасибо

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования