Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Не могу понять 
:(
    Опции темы
fraer
Дата 12.9.2007, 11:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Код

SELECT 
  message.id,
  message.typeid,
  message.levelid,
  message.subject,
  message.message,
  message.senderid,
  message.created,
  message.send,
  message.sent,
  message.`status`,
  message.system,
  messagerecipient.id,
  messagerecipient.messageid,
  messagerecipient.groupid,
  messagerecipient.userid,
  messagerecipient.`status`,
  messagerecipient.system,
  messagerecipient.special
FROM
  message
  INNER JOIN messagerecipient ON (message.id = messagerecipient.messageid)
  IF `messagerecipient`.`groupid` != 0 AND `messagerecipient`.`userid` != 0 THEN
  INNER JOIN `user` ON (messagerecipient.userid = `user`.id)
  ELSEIF `messagerecipient`.`userid` = 0 THEN
  INNER JOIN `group` ON (messagerecipient.groupid = `group`.id)
  ELSEIF `messagerecipient`.`groupid` = 0 THEN
  INNER JOIN `user` ON (messagerecipient.userid = `user`.id)
  END IF
WHERE
  message.subject LIKE '%67%' OR `user`.`firstname` LIKE '%Yura%'


Что-то тут не правильно, но что?

Присоединённый файл ( Кол-во скачиваний: 7 )
Присоединённый файл  Untitled_1.jpg 37,72 Kb
PM MAIL   Вверх
Бонифаций
Дата 13.9.2007, 17:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



а что вам сервер пишет по поводу такого запроса? (лично у меня большие сомнения по правомерности IF -ов в FROM)



--------------------
 Бонифаций.
 
PM MAIL ICQ Skype GTalk Jabber YIM   Вверх
muzer
Дата 14.9.2007, 05:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



fraer, это какой-то не mysql'вский синтаксис, не умеет он IF ELSIF и т.д., тем более во FROM.
PM WWW   Вверх
fraer
Дата 17.9.2007, 09:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Решил таким образом: 
Код

SELECT
  message.typeid AS type,
  message.subject AS subj,
  message.message AS text,
  message.senderid AS sid,
  CONCAT(user.`firstname`, " ", user.`lastname`) AS sname,
  message.created AS created,
  message.send AS send,
  messagerecipient.id AS rid,
  messagerecipient.messageid AS `mid`,
  IF(messagerecipient.userid = 0, messagerecipient.groupid, messagerecipient.userid) AS rec,
  IF(messagerecipient.userid = 0, 'group', 'user') AS rect,
  IF(messagerecipient.userid = 0,(SELECT name FROM `group` WHERE id = messagerecipient.groupid),(SELECT CONCAT(user.firstname, ' ', user.lastname) FROM user WHERE user.id = messagerecipient.userid)) AS rname
FROM
  message
  INNER JOIN messagerecipient ON (message.id = messagerecipient.messageid)
  INNER JOIN `user` ON (message.senderid = `user`.id)
HAVING
  rname LIKE '%User%' OR
  subj LIKE '%67%'


PM MAIL   Вверх
muzer
Дата 17.9.2007, 12:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



о боже..
не нужно так делать. Не нужно писать подзапросы в секции SELECT, вы заставляете mysql выполнять этот подзапрос на каждую строчку вашего результата!
PM WWW   Вверх
Gold Dragon
Дата 19.9.2007, 07:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

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



а может проблема в ошибке синтаксиса.. кавычки?


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




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


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

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