Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Запрос с двумя вложенными запросами, что-то не хочет работать 
V
    Опции темы
begin
Дата 25.6.2009, 22:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 415
Регистрация: 16.5.2007

Репутация: нет
Всего: нет



Есть таблица сообщений:
t_message:
Код

id
user1 - отправитель
user2 - получатель
text
status
data


Мне нужно выбрать все сообщения между мной ($user_id) и другим человеков ($profile_id).
Пытаюсь это сделать вот так:
Код

$query="select * from `t_message` where `id` in (select `id` from `t_message` where `user1`='$user_id' or `user2`='$user_id') or `id` in (select `id` from `t_message` where `user1`='$profile_id' or `user2`='$profile_id') order by `id` desc limit ".$b.",10";

где $b - номер сообщения, с которого начинать показывать переписку.
Но выдает ошибку:
Код

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '10' at line 1


И не работает аналогичный запрос на изменения статуса у всех сообщений из этой переписки на "прочитанное":
Код

$query="update `t_message` set `status`='0' where `id` in (select `id` from `t_message` where `user1`='$user_id' or `user2`='$user_id') or `id` in (select `id` from `t_message` where `user1`='$profile_id' or `user2`='$profile_id')";

Выдает ошибку:
Код

You can't specify target table 't_message' for update in FROM clause



PM MAIL   Вверх
solenko
Дата 26.6.2009, 08:47 (ссылка) |  (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1473
Регистрация: 15.1.2006
Где: Украина

Репутация: 7
Всего: 67



Зачем вам вообще вложенные запросы?
Код

SELECT *
FROM messages
WHERE (user_1 = $user_id AND user_2 = $profile_id) 
    OR (user_1 = $profile_id AND user_2 = $user_id)




--------------------
Ла-ла-ла-ла
Заметьте, нет официального подтверждения, что это не просто четыре слога.
PM MAIL WWW ICQ Skype   Вверх
begin
Дата 27.6.2009, 00:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 415
Регистрация: 16.5.2007

Репутация: нет
Всего: нет



Спасибо, подобное объединение условий в запросе очень помогло. Просто раньше не сталкивался с такой возможность группировки условий.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Базы Данных | Следующая тема »


 




[ Время генерации скрипта: 0.0443 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.