Forum Webscript.Ru
Общие => Базы данных => Тема начата: xRUSha от 16 Апреля 2003, 10:31:50
-
Неделю не могу придумать, как составить примитивный запрос на одну табличку. Суть вот в чем - есть такая таблица:
id int
body text
url text
data date
Нужно составить запос - который бы возвращал все записи за последние бве даты. Дата может (и скорей всего будет) повторятся, т.е. одна и та же дата может быть к нескольких записей.
заранее спасибо
-
первым запросом получи последние 2 даты
вторым - все записи по ним
(это если никто не подскажет как одним запросом сделать)
-
> который бы возвращал все записи за последние бве даты.
это что значит?
за последние 2 дня или записи у которых даты самые новые?
если второе, то тебе нужно
SELECT ... FROM ... ORDER BY date DESC LIMIT 2
-
Я так понимаю у него может быть несколько записей за день.
-
Я так понимаю у него может быть несколько записей за день.
Именно так, но при этом они будут появлятся не каждый день.
короче пример:
id ... data
1 2003-04-10
2 2003-04-10
3 2003-04-10
5 2003-04-14
6 2003-04-14
7 2003-04-14
8 2003-04-18
9 2003-04-18
мне нужно чтобы запрос выдал мне записи с 5 по 9ю
-
первым запросом получи последние 2 даты
вторым - все записи по ним
Хорошая идея, но все-таки хотелось одним запросом. Задачка то выглядит совсем не сложной.
Кстати - у нас в универе (ГУАП) щас идет курс Базы данных. Так вот препод меня послал - помочь не захотел (скорей всего не смог), а единственное, на что сослался - это на функции работы с датой.
-
> Хорошая идея, но все-таки хотелось одним запросом.
не получится.
это только со вложенными запросами можно сделать, но в 4.1. версии MySQL где они уже реализованы (я так поняла у тебя MySQL или я ошиблась?) LIMIT еще не поддерживается во вложенных запросах кажется, а без него никак не получить 2 даты.
-
Жаль. Я думал это возможно. А про 4.1 - мне на хостинге сказали, что это еще альфа версия и они конечно могут для меня ее установить, но следить за ее возможными падениями они не берутся.
-
я же сказала, что даже в 4.1 вы этого не сделаете.
У них LIMIT во вложенных запросах только на 5.0 запланирован.
так что пока придется 2мя запросами довольствоваться.
-
я уже написал, спасибо
-
а что, если сделать отдельную таблицу только для дат, а потом выбирать с помощю JOIN из двух таблиц сразу, установив LIMIT 2 на таблицу с датами?
-
Этот запрос (вернее скрипт из которого он делается) выводит последние обновления. Не жирно ли ему 2 таблицы
-
xRUSha
Не жирно. Ты придумал как сделать иначе?
-
двумя запросами:
select distinct data from table_name ORDER BY data DESC limit 2
SELECT * FROM newvideo WHERE data = \'$d[$i]\'
хотя мне это решение не очень нравится