[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Помогите сформировать запрос
Xes
Помогите сформировать запрос поиска с использованием LIKE.
Есть две таблицы с множеством полей необходимо осуществить поиск по двум полям из первой таблицы Имя объекта, Адрес и одному полю второй таблицы Город по русски.

В первой таблице идет поиск по полю name если оно подпадает под Like то включаем в выборку, тоже самое по адресу.

Далее идет поиск по второй таблице table2.gorodru если совпадения(частичное) найдены то необходимо получить поле table2.goroden соответсвующий всем записям в этой таблице 2.

И потом прибавить к первой выборке всю выборку из таблицы один, у которой тоже table1.goroden =table2.goroden.
Потом удалить повторяющиеся.

Например

Вводим "Мос" поиск по нозванию объекта и возможно адресу в Т1 дает нам записаи Объект МосЭнергоСтрой, Объект АБВ (у него адрес ул. Московская). Далее выбираем из таблицы 2 по городам это будет Москва, Ну еще какойнибуть город на МОС.

Постарался объяснить как мог, поподробнее.




Спустя 9 минут, 33 секунды (29.04.2011 - 22:08) Xes написал(а):
Допер пока как объеденит интересующею меня информацияю для поиска в одну таблицу.
Так если добавил gorodru к первой таблице теперь можно из этой виртуальной таблицы все найти, но воложеные запросы не поддерживаются как быть?

SELECT name, adres, goroda.gorodru FROM hotels LEFT JOIN goroda ON hotels.goroden=goroda.goroden

Спустя 35 минут, 22 секунды (29.04.2011 - 22:43) Лена написал(а):

SELECT tbl1.object,tbl1.adress,tbl2.city
FROM table1 tbl1
INNER JOIN table2 tbl2 ON tbl1.city = tbl2.city
WHERE tbl1.object LIKE '%$object%'
OR tbl1.adress LIKE '%$adress%'
OR tbl2.city LIKE '%$city%'


$object,$adress,$city - значения, которые проверяете при поиске

Спустя 11 минут, 42 секунды (29.04.2011 - 22:55) Xes написал(а):
Спасибо
я тут методом тыка нарыл такой способ, собственно он был переделан из ранее мне подсказенного для одной таблицы.
Просто не знал что where можно юзать c ON - Думал что ON это и есть условие.

SELECT hotels.*, goroda.gorodru FROM hotels LEFT JOIN goroda ON 
(hotels.goroden=goroda.goroden) where (concat(goroda.gorodru, name, adres) like '%Мос%')


А что это за запись FROM table1 tbl1 и table2 tbl2 почему не просто tbl1 - таблица 1?

Спустя 10 часов, 31 минута, 1 секунда (30.04.2011 - 09:26) Xes написал(а):
Подскажите порыл в книжках в инете не где не увидел такой записи

LEFT JOIN ON where

Собственно получаеться объедение таблиц по ключу, подстановка в левую таблицу правой если есть соответсвие, а дальше выборка из этой общей таблицы.

Вобщем то работает наскольо я смог в этом убедиться и похоже верно, но ни в каких книжках нет этого. Можно юзать?

Спустя 29 минут, 29 секунд (30.04.2011 - 09:55) Nikitian написал(а):
Не в тех книжках видимо искали smile.gif
Тут
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.