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

Форум MySQL

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Выборка по дате и количеству записей

Сообщения:  [1-10]   [11-18] 

 
 автор: mastergrom   (11.10.2009 в 23:45)   письмо автору
 
   для: Trianon   (11.10.2009 в 23:40)
 

>Ну и какой смысл в неравенстве a >= a + 30 ?
>Ясно же, что оно всегда будет ложным.
>a - a >= 30
>0 >= 30
>false
>
>Третий класс, ей-богу.
Да, пора уже наверное спать ложиться ...
Спасибо!

  Ответить  
 
 автор: Trianon   (11.10.2009 в 23:40)   письмо автору
 
   для: mastergrom   (11.10.2009 в 23:30)
 

Ну и какой смысл в неравенстве a >= a + 30 ?
Ясно же, что оно всегда будет ложным.
a - a >= 30
0 >= 30
false

Третий класс, ей-богу.

  Ответить  
 
 автор: mastergrom   (11.10.2009 в 23:30)   письмо автору
 
   для: Trianon   (11.10.2009 в 23:19)
 

>$half_hour = "INTERVAL 30 MINUTE";
Не находит записей вообще.

>только поглядите, что и с чем Вы сравниваете.

Сравниваю столбец TIMESTAMP со значением этого же столбца + интервал 30 минут. Или нет ?
Впринципе, там запрос громоздкий, довольно-таки, 3 таблицы соеденены. Но если убрать условие с датой то показывает все правильно .. Может как-то преобразовать нужно timestamp в DATE ?

  Ответить  
 
 автор: Trianon   (11.10.2009 в 23:19)   письмо автору
 
   для: mastergrom   (11.10.2009 в 23:12)
 

$half_hour = "INTERVAL 30 MINUTE";

только поглядите, что и с чем Вы сравниваете.

  Ответить  
 
 автор: mastergrom   (11.10.2009 в 23:12)   письмо автору
 
   для: Trianon   (11.10.2009 в 23:06)
 

то есть, лучше так:
ON (table_a.id = table_b.table_a_id AND table_b.date >= CURDATE()) 

?
PS и еще вопросик, В другом запросе выбрать из таблицы b записи в которых date больше чем текущая на 30 минут, пробовал в WHERE ставить table_b.date >= table_b.date + $half_hour. Где $half_hour = 60 * 30. Не подскажите как?

  Ответить  
 
 автор: Trianon   (11.10.2009 в 23:06)   письмо автору
 
   для: mastergrom   (11.10.2009 в 22:58)
 

сложность исполнения запроса выросла на порядок, а так ничего.

  Ответить  
 
 автор: mastergrom   (11.10.2009 в 22:58)   письмо автору
 
   для: Trianon   (11.10.2009 в 18:33)
 

>> WHERE table_b.date >= CURDATE() OR (SELECT COUNT(table_b.id_count) as cnt) = 0
>
>вот и помогай после этого...

А что не так ? )

  Ответить  
 
 автор: Trianon   (11.10.2009 в 18:33)   письмо автору
 
   для: mastergrom   (11.10.2009 в 16:16)
 

> WHERE table_b.date >= CURDATE() OR (SELECT COUNT(table_b.id_count) as cnt) = 0

вот и помогай после этого...

  Ответить  
 
 автор: mastergrom   (11.10.2009 в 16:16)   письмо автору
 
   для: Trianon   (11.10.2009 в 15:57)
 

Вобщем, вроде этот вариант работает:
SELECT table_a.id, COUNT(table_b.id_count) AS total
FROM table_a LEFT JOIN table_b ON (table_a.id = table_b.table_a_id)
WHERE table_b.date >= CURDATE() OR (SELECT COUNT(table_b.id_count) as cnt) = 0
GROUP BY table_a.id
HAVING total < 3

  Ответить  
 
 автор: Trianon   (11.10.2009 в 15:57)   письмо автору
 
   для: cheops   (11.10.2009 в 15:48)
 

тут закавыка в том, что WHERE DATE(FROM_UNIXTIME(table_b.date)) ... окажется истинным лишь для тех строк, где table_b.date будет существовать.

  Ответить  

Сообщения:  [1-10]   [11-18] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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