![]() |
|
Модераторы: skyboy |
![]()
|
|
| Ripper |
|
|||
![]() Lonely soul... ![]() ![]() Профиль Группа: Участник Сообщений: 920 Регистрация: 30.6.2004 Где: г. Москва Репутация: нет Всего: 23 |
Здравствуйте.
Есть табличка screens - сущность экран. У него есть id и name. И screens_with_price - сущность "экран с ценой". У неё есть id, screen_id, date, price. Т.е. в ней хранится история цен на экран. Мне нужно вытащить все экраны, и их последние цены (т.е. цена на последний момент), если цены нет то указать null или -1, не важно. Мне удалось только вытащить цены, если они есть:
Но никак не получается сделать так чтобы вошли записи для экранов, у которых нет цен :( -------------------- "Он знает: надо смеяться над тем, что тебя мучит, иначе не сохранишь равновесия, иначе мир сведет тебя с ума" - Над кукушкиным гнездом |
|||
|
||||
| AndreyIQ |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 185 Регистрация: 5.2.2007 Репутация: 3 Всего: 8 |
|
|||
|
||||
| Ripper |
|
|||
![]() Lonely soul... ![]() ![]() Профиль Группа: Участник Сообщений: 920 Регистрация: 30.6.2004 Где: г. Москва Репутация: нет Всего: 23 |
Этот запрос мне возвращает все цены на экран. Т.е. там есть повторяющиеся id и разные для них цены
Я как раз пробовал с лефт джойнами, но что-то понять не могу как с ними сделать это -------------------- "Он знает: надо смеяться над тем, что тебя мучит, иначе не сохранишь равновесия, иначе мир сведет тебя с ума" - Над кукушкиным гнездом |
|||
|
||||
| Zloxa |
|
|||
|
Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 53 Всего: 161 |
Это сообщение отредактировал(а) Zloxa - 17.1.2012, 13:41 -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка |
|||
|
||||
| Ripper |
|
|||
![]() Lonely soul... ![]() ![]() Профиль Группа: Участник Сообщений: 920 Регистрация: 30.6.2004 Где: г. Москва Репутация: нет Всего: 23 |
Честно говоря не очень запрос понял, но он так же не возвращает null-ов(
-------------------- "Он знает: надо смеяться над тем, что тебя мучит, иначе не сохранишь равновесия, иначе мир сведет тебя с ума" - Над кукушкиным гнездом |
|||
|
||||
| Zloxa |
|
|||
|
Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 53 Всего: 161 |
Добавлено @ 14:13 Вы не правильно указали критерии объединения для исходного запроса. Он в принципе не мог вам возвращать желаемого. Я подумал было, что дело лишь в этом. О том, что вам еще и неопределенные значения выводить - просто не дочитал. Это сообщение отредактировал(а) Zloxa - 17.1.2012, 15:22 -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка |
|||
|
||||
| Zloxa |
|
|||
|
Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 53 Всего: 161 |
Попробуйте еще такой вариант:
Он может дать вам исключительное преимущество на больших объемах screens_with_prices, при наличии индекса по паре screens_with_prices(screen_id,date), однако в случае, если эта пара окажется не уникальной, будет возвращена любая(бох весть какая) цена для максимальной даты. Ранее предложенный запрос, в этом случае вернет все значения цены, для максимальной даты. Правда, думаю, стоит оговориться, что я не испытываю особой уверенности в том, что MySQL способен начать просмотр индекса с наибольшей позиции и прерваться при нахождении первой же записи. Здесь пусть меня поправят гуру MySQL, если он так не умеет. Если мои сомнения не беспочвенны, и MySQL вернет значение только после просмотра всего диапазона значений, суть затеи невилируется чуть ли не полностью. В этом случае выход может быть найден путем сохранення некой обратной величины даты, ее индексации и отбора по ней c cортировкой по asc. Ну и довеском - ссыль в тему http://www.sql.ru/forum/actualthread.aspx?tid=687908 Это сообщение отредактировал(а) Zloxa - 17.1.2012, 15:52 -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Составление SQL-запросов | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |