Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Как сделать неграмоздким запрос

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
eramar
Отправлено: 29 Августа, 2011 - 17:10:49
Post Id


Новичок


Покинул форум
Сообщений всего: 57
Дата рег-ции: Авг. 2011  


Помог: 0 раз(а)




Есть две таблицы :
profile - поля: user_id, user_name, user_surname
zapis - поля: zapis_id, zapis_text,zapis_time, user_id, zapis_category

zapis_category бывает 6 вариантов : например
Категория 1
Категория 1
Категория 1
Категория 1


Подскажите, пожалуйста, как сделать следующую выборку:
выбрать только тех user_id, у которых нет в таблице zapis , находящиеся в интервале : вчера - сегодня. Отсортировано должно быть по времени последней zapis.
То есть, user_id , который добавил zapis последним , должен быть первым.

У user_id может быть несколько zapis. Но сортироваться должно только по последней добавленной!

Заранее спасибо!
 
 Top
Petro
Отправлено: 29 Августа, 2011 - 17:20:17
Post Id



Гость


Покинул форум
Сообщений всего: 126
Дата рег-ции: Март 2010  


Помог: 2 раз(а)




http://forum.php.su/topic.php?fo...8&topic=3847

(Отредактировано автором: 29 Августа, 2011 - 17:21:14)



-----
Нет ничего более постоянного, чем временное.
 
 Top
eramar
Отправлено: 29 Августа, 2011 - 17:21:36
Post Id


Новичок


Покинул форум
Сообщений всего: 57
Дата рег-ции: Авг. 2011  


Помог: 0 раз(а)




нужен список пользователей, у которых НЕТ ни одной записи в этом промежутке времени
 
 Top
Petro
Отправлено: 29 Августа, 2011 - 17:35:33
Post Id



Гость


Покинул форум
Сообщений всего: 126
Дата рег-ции: Март 2010  


Помог: 2 раз(а)




SELECT user_id
FROM profile
WHERE not (user_id = (SELECT user_id
FROM zapis
WHERE zapis_time > (NOW() - INTERVAL '24:00' HOUR_MINUTE)));
еще можно так.

(Отредактировано автором: 29 Августа, 2011 - 18:30:21)



-----
Нет ничего более постоянного, чем временное.
 
 Top
eramar
Отправлено: 29 Августа, 2011 - 17:43:07
Post Id


Новичок


Покинул форум
Сообщений всего: 57
Дата рег-ции: Авг. 2011  


Помог: 0 раз(а)




а что значит конструкция <> . никогда такого не встречал еще Недовольство, огорчение
 
 Top
DeepVarvar Супермодератор
Отправлено: 29 Августа, 2011 - 17:44:45
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




Больше или меньше, но не равно
 
 Top
Petro
Отправлено: 29 Августа, 2011 - 17:49:48
Post Id



Гость


Покинул форум
Сообщений всего: 126
Дата рег-ции: Март 2010  


Помог: 2 раз(а)




<> это и есть знак неравенства.


-----
Нет ничего более постоянного, чем временное.
 
 Top
eramar
Отправлено: 29 Августа, 2011 - 18:03:32
Post Id


Новичок


Покинул форум
Сообщений всего: 57
Дата рег-ции: Авг. 2011  


Помог: 0 раз(а)




вот мой запрос, почему-то не работает Недовольство, огорчение
$listD - список id из которого делается выборка

PHP:
скопировать код в буфер обмена
  1.  
  2. $query2 = mysql_query("select user_id from profile where user_id  in ('{$listD}') and <>(select DISTINCT profile.user_id from profile,user_plan where profile.user_id in ('{$listD}') and profile.user_id=user_plan.user_id and '$date44'>= plan_realise and plan_realise >='$date33')     ");



запрос
PHP:
скопировать код в буфер обмена
  1. select DISTINCT profile.user_id from profile,user_plan where profile.user_id in ('{$listD}') and profile.user_id=user_plan.user_id and '$date44'>= plan_realise and plan_realise >='$date33'
  2.  
выполняется. как я понял не работает конструкция <>
 
 Top
Petro
Отправлено: 29 Августа, 2011 - 18:16:04
Post Id



Гость


Покинул форум
Сообщений всего: 126
Дата рег-ции: Март 2010  


Помог: 2 раз(а)




попробуйте ..... and not(код)


-----
Нет ничего более постоянного, чем временное.
 
 Top
eramar
Отправлено: 29 Августа, 2011 - 18:38:56
Post Id


Новичок


Покинул форум
Сообщений всего: 57
Дата рег-ции: Авг. 2011  


Помог: 0 раз(а)




ничего не выбирает Недовольство, огорчение
(Добавление)
может не правильный синтаксис (код), кавычки нужны, или еще что-нибудь ?
(Добавление)
отдельно запрос который в (код) - выполняется правильно
 
 Top
Petro
Отправлено: 29 Августа, 2011 - 18:42:44
Post Id



Гость


Покинул форум
Сообщений всего: 126
Дата рег-ции: Март 2010  


Помог: 2 раз(а)




Прочитай еще раз 4 сообщение сверху.


-----
Нет ничего более постоянного, чем временное.
 
 Top
eramar
Отправлено: 29 Августа, 2011 - 19:25:59
Post Id


Новичок


Покинул форум
Сообщений всего: 57
Дата рег-ции: Авг. 2011  


Помог: 0 раз(а)




PHP:
скопировать код в буфер обмена
  1. $query2 = mysql_query("select profile.user_id from profile where profile.user_id in ('{$listD}') and   not (profile.user_id = (select DISTINCT profile.user_id from profile,user_plan where profile.user_id in ('{$listD}') and profile.user_id=user_plan.user_id and '$date44'>= plan_realise and plan_realise >='$date33') )    ");


сделал как в 4ом посту. не работает все равно, помогите, пожалуйста! Огорчение
 
 Top
Petro
Отправлено: 29 Августа, 2011 - 19:52:07
Post Id



Гость


Покинул форум
Сообщений всего: 126
Дата рег-ции: Март 2010  


Помог: 2 раз(а)




SELECT a.user_id
FROM profile a, zapis b
WHERE a.user_id = b.user_id AND b.zapis_time < ( NOW( ) - INTERVAL '24:00' HOUR_MINUTE );

Вот так проще всего )
У тебя какой тип zapis_time - datetime? или ты как то по другому записываеш дату
и вообще какую ошибку хоть пишет.

(Отредактировано автором: 29 Августа, 2011 - 20:10:15)



-----
Нет ничего более постоянного, чем временное.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« SQL и Архитектура БД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB