Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
Тяжеловесный запрос... (DeMx) 06/11/2006 - 21:53:21
      Re: Тяжеловесный запрос... (MasterZiv) 16/11/2006 - 12:10:52



From: DeMx - 06/11/2006 - 21:53:21
Subject:Тяжеловесный запрос...
-----------------
Есть две таблицы. Скажем, такие:

main
id
login
comment

email
id
url
email

Постараюсь описать задачу...

Берем login из таблицы main и смотрим, есть ли там символ '@'. Если он есть, то сравниваем login с email из таблицы email. Все найденные совпадения добавляем к результату (т.е. плюсуем к main.id, main.login и main.comment еще и все поля таблицы email, но при этом, объединив их в одно, скажем email).

Если '@' в login нет и, соответственно, никаких совпадений между login и email нету, то берем id из таблицы main и сравниваем с одноименным полем из таблицы email. Есть тут есть совпадения, то все их, так же, добавляем к результату (объединив в одно поле - email).

Если вообще никаких совпадений нет, то такую запись выводить не нужно.

Вот такая хрень.

Проблема у меня в том, что в email могут быть найдены несколько совпадений и вот как их в одном запросе прилепить к результату - я не знаю.

Т.е. результат может быть таким:

------------------------------------------------------------------------
| id | login | comment | email |
------------------------------------------------------------------------
| 1 | demx | bla-bla-bla | 3 http://www.site.com demx@yahoo.com |
| 2 | rob | tra-la-la | 4 http://www.site.ru robby@lebedev.ru |
| | | | 6 http://www.site.ws robby@gmail.com |
------------------------------------------------------------------------

Как видите, у юзера rob найдено 2 мыла... И такую ситуацию надо учитывать.

Как бы это реализовать попроще? Я уже сделал нечто похожее... но средствами PHP, т.е в цикле перебирал (получилось дохера запросов), что, разумеется, не эффективно.
Да и задачи мои не совсем корректно исполняет. =(


[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
30116



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |