Автор Тема: помогите плз составить запрос  (Прочитано 4841 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн xRUSha

  • ...
  • Постоялец
  • ***
  • Сообщений: 200
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.flashcafe.ru
помогите плз составить запрос
« : 16 Апреля 2003, 10:31:50 »
Неделю не могу придумать, как составить примитивный запрос на одну табличку. Суть вот в чем - есть такая таблица:
id int
body text
url text
data date

Нужно составить запос - который бы возвращал все записи за последние бве даты. Дата может (и скорей всего будет) повторятся, т.е. одна и та же дата может быть к нескольких записей.

заранее спасибо
...

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
помогите плз составить запрос
« Ответ #1 : 16 Апреля 2003, 12:06:59 »
первым запросом получи последние 2 даты
вторым - все записи по ним
(это если никто не подскажет как одним запросом сделать)
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн fidget

  • Непоседа
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 607
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
помогите плз составить запрос
« Ответ #2 : 16 Апреля 2003, 12:07:53 »
> который бы возвращал все записи за последние бве даты.
это что значит?
 за последние 2 дня или записи у которых даты самые новые?
если второе, то тебе нужно

SELECT 
... FROM ... ORDER BY date DESC LIMIT 2
На Машине Тьюринга далеко не уедешь.

Оффлайн NAS

  • Неопытный юзер
  • Администратор
  • Ветеран
  • *****
  • Сообщений: 2951
  • +1/-0
  • 1
    • Просмотр профиля
    • http://nhouse.ru
помогите плз составить запрос
« Ответ #3 : 16 Апреля 2003, 12:24:01 »
Я так понимаю у него может быть несколько записей за день.

Оффлайн xRUSha

  • ...
  • Постоялец
  • ***
  • Сообщений: 200
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.flashcafe.ru
помогите плз составить запрос
« Ответ #4 : 16 Апреля 2003, 13:40:18 »
Цитировать
Я так понимаю у него может быть несколько записей за день.

Именно так, но при этом они будут появлятся не каждый день.

короче пример:
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ю
...

Оффлайн xRUSha

  • ...
  • Постоялец
  • ***
  • Сообщений: 200
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.flashcafe.ru
помогите плз составить запрос
« Ответ #5 : 16 Апреля 2003, 13:43:59 »
Цитировать
первым запросом получи последние 2 даты
вторым - все записи по ним


Хорошая идея, но все-таки хотелось одним запросом. Задачка то выглядит совсем не сложной.

Кстати - у нас в универе (ГУАП) щас идет курс Базы данных. Так вот препод меня послал - помочь не захотел (скорей всего не смог), а единственное, на что сослался - это на функции работы с датой.
« Последнее редактирование: 16 Апреля 2003, 14:15:55 от xRUSha »
...

Оффлайн fidget

  • Непоседа
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 607
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
помогите плз составить запрос
« Ответ #6 : 16 Апреля 2003, 15:04:07 »
> Хорошая идея, но все-таки хотелось одним запросом.

не получится.
это только со вложенными запросами можно сделать, но в 4.1. версии MySQL где они уже реализованы (я так поняла у тебя MySQL или я ошиблась?) LIMIT еще не поддерживается во вложенных запросах кажется, а без него никак не получить 2 даты.
На Машине Тьюринга далеко не уедешь.

Оффлайн xRUSha

  • ...
  • Постоялец
  • ***
  • Сообщений: 200
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.flashcafe.ru
помогите плз составить запрос
« Ответ #7 : 16 Апреля 2003, 15:12:06 »
Жаль. Я думал это возможно. А про 4.1 - мне на хостинге сказали, что это еще альфа версия и они конечно могут для меня ее установить, но следить за ее возможными падениями они не берутся.
...

Оффлайн fidget

  • Непоседа
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 607
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
помогите плз составить запрос
« Ответ #8 : 16 Апреля 2003, 17:07:19 »
я же сказала, что даже в 4.1 вы этого не сделаете.
У них LIMIT во вложенных запросах только на 5.0 запланирован.
так что пока придется 2мя запросами довольствоваться.
На Машине Тьюринга далеко не уедешь.

Оффлайн xRUSha

  • ...
  • Постоялец
  • ***
  • Сообщений: 200
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.flashcafe.ru
помогите плз составить запрос
« Ответ #9 : 18 Апреля 2003, 09:50:22 »
я уже написал, спасибо
...

Оффлайн Croaker

  • Модератор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 927
  • +0/-0
  • 0
    • Просмотр профиля
    • http://alex-files.ru
помогите плз составить запрос
« Ответ #10 : 18 Апреля 2003, 15:10:05 »
а что, если сделать отдельную таблицу только для дат, а потом выбирать с помощю JOIN из двух таблиц сразу, установив LIMIT 2 на таблицу с датами?
Не все коту матрица.

Оффлайн xRUSha

  • ...
  • Постоялец
  • ***
  • Сообщений: 200
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.flashcafe.ru
помогите плз составить запрос
« Ответ #11 : 21 Апреля 2003, 09:15:53 »
Этот запрос (вернее скрипт из которого он делается) выводит последние обновления. Не жирно ли ему 2 таблицы
...

Оффлайн Croaker

  • Модератор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 927
  • +0/-0
  • 0
    • Просмотр профиля
    • http://alex-files.ru
помогите плз составить запрос
« Ответ #12 : 21 Апреля 2003, 13:01:30 »
xRUSha
Не жирно. Ты придумал как сделать иначе?
Не все коту матрица.

Оффлайн xRUSha

  • ...
  • Постоялец
  • ***
  • Сообщений: 200
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.flashcafe.ru
помогите плз составить запрос
« Ответ #13 : 22 Апреля 2003, 11:38:11 »
двумя запросами:
select distinct data from table_name ORDER BY data DESC limit 2
SELECT * FROM newvideo WHERE data = \'$d[$i]\'

хотя мне это решение не очень нравится
...

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28