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 :: Фильтр вывода MySQL [2]
#1064 - 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 '( SELECT max(message_id) AS message_id, IF (`author_id` = 10, `address_id`, `aut' at line 1
#1064 - 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 'USING(message_id) LIMIT 0, 30' at line 4
Sail
Отправлено: 19 Июня, 2014 - 15:07:08
Участник
Покинул форум
Сообщений всего: 1131
Дата рег-ции: Февр. 2014
SELECT max(message_id) AS message_id, IF (`author_id` =10, `address_id`, `author_id`) AS user_id FROM `messages` WHERE `author_id` =10 OR `address_id` =10
GROUP BY user_id
) lastmessages USING(message_id) ORDER BY `send_date` DESC
А можно как-то без AS user_id?
Мелкий
Отправлено: 19 Июня, 2014 - 15:34:25
Активный участник
Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009 Откуда: Россия, Санкт-Петербург
Помог: 618 раз(а)
Sail пишет:
Вместо той запятой, однако,
Ох. У меня, конечно, сессия в разгаре, но чтобы даже со второй попытки не обратить внимание на отсутствие join'а?
brown_dev пишет:
А можно как-то без AS user_id?
В теории можно.
Да и на практике тоже, это поле дальше нигде не используется:
-- так, теперь-то все ключевые слова на своих местах? x_X
Я рано радовался, ID 10 дублируется что в address_id, так и author_id (Добавление)
Хотя, подождите. (Добавление)
В итоге получилось, спасибо еще раз всем!
Наверно не самое лучшее решение, но мне пришлось сделать некоторые проверки в коде, код скрипта:
$q= paging("SELECT * FROM messages JOIN (SELECT max(message_id) AS message_id FROM `messages` WHERE `author_id` = $userid OR `address_id` = $userid GROUP BY IF (`author_id` = $userid, `address_id`, `author_id`)) lastmessages USING(message_id) ORDER BY `send_date` DESC",$scriptname,'', 0);
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.