SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 17.02.2012 07:55:19

anonym
Участник
Зарегистрирован: 17.02.2012
Сообщений: 14

Поиск по сайту по 3 таблицам

Php + Mysql
Подскажите, как лучше сделать поиск по сайту. Имеется главная таблица Раздел(ы) и второстепенные таблицы:
1. Товары
2. Масло
3. Шины

Если сталкивались, подскажите.

Неактивен

 

#2 17.02.2012 10:48:24

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Поиск по сайту по 3 таблицам

Ищите по 3 таблицам. Или отдельными запросами, или объединяете их с помощью union

Неактивен

 

#3 17.02.2012 12:16:10

anonym
Участник
Зарегистрирован: 17.02.2012
Сообщений: 14

Re: Поиск по сайту по 3 таблицам

Подскажите как должен правльно быть составлен запрос на поиск по 3 таблицам, сложность в том, что в таблицах разные названия столбцов, так в одной таблице id_goods, в другой id. И еще уникальные столбцы. В прикрепленном изображение указал.

А в третьей таблице Раздел, содержится информация по разделам:
id_razdel title_razdel
1            Масло
2            Шины
3            Мотоциклы

Отредактированно anonym (17.02.2012 12:20:39)


Прикрепленные файлы:
Attachment Icon 1.png, Размер: 42,834 байт, Скачано: 356

Неактивен

 

#4 17.02.2012 12:20:07

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Поиск по сайту по 3 таблицам

Сделайте 3 запроса.

Неактивен

 

#5 17.02.2012 12:22:40

anonym
Участник
Зарегистрирован: 17.02.2012
Сообщений: 14

Re: Поиск по сайту по 3 таблицам

У меня сейчас вот так сделано:
$q = "SELECT `id_razdel`, `id`, `marka`, `cat`, `title`, `text` FROM `goods` WHERE `title` LIKE '%$query%' OR `text` LIKE '%$query%'
            UNION
SELECT `id_razdel`, `id`, `cat`, `marka`, `title`, `text` FROM `wheel` WHERE title` LIKE '%$query%' OR `text` LIKE '%$query%'";
            $result = mysql_query($q);
Но при данном запросе в таблицах должны быть одинкаовые названия колокнок.
А без UNION у меня не получается, помогите составить запрос.

Отредактированно anonym (17.02.2012 12:24:01)

Неактивен

 

#6 17.02.2012 12:29:48

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Поиск по сайту по 3 таблицам

anonym написал:

Но при данном запросе в таблицах должны быть одинкаовые названия колокнок.

Нет.
Должно выбираться одинаковое кол-во колонок.

Неактивен

 

#7 17.02.2012 12:34:39

anonym
Участник
Зарегистрирован: 17.02.2012
Сообщений: 14

Re: Поиск по сайту по 3 таблицам

Спасибо, очень помогли с UNION, теперь получается.

Скажите а вариант из 3 запросов, как составить?

Неактивен

 

#8 17.02.2012 12:37:49

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Поиск по сайту по 3 таблицам

Убираете union и делаете три отдельных запроса. Только смысл?

Неактивен

 

#9 17.02.2012 12:39:54

anonym
Участник
Зарегистрирован: 17.02.2012
Сообщений: 14

Re: Поиск по сайту по 3 таблицам

сам запрос

Неактивен

 

#10 17.02.2012 12:42:21

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Поиск по сайту по 3 таблицам

anonym написал:

сам запрос

Не понял это сообщение, поясните.

Неактивен

 

#11 17.02.2012 12:45:00

anonym
Участник
Зарегистрирован: 17.02.2012
Сообщений: 14

Re: Поиск по сайту по 3 таблицам

Это должно быть 3 разных запроса, или один запрос с тремя подзапросами? И если нетрудно, покажите пример.

Неактивен

 

#12 17.02.2012 12:50:56

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Поиск по сайту по 3 таблицам

3 разных запроса.
SELECT ... FROM `первая таблица` ...
SELECT ... FROM `вторая таблица` ...
SELECT ... FROM `третья таблица` ...

Неактивен

 

#13 17.02.2012 12:57:34

anonym
Участник
Зарегистрирован: 17.02.2012
Сообщений: 14

Re: Поиск по сайту по 3 таблицам

а как данных полученные из этих 3-х запросов потом в одну переменную записывать?
3 разных запроса.
request1= "SELECT ... FROM `первая таблица` ...";
request2= "SELECT ... FROM `вторая таблица` ...";
request3= "SELECT ... FROM `третья таблица` ...";
$result = mysql_query();

???

Отредактированно anonym (17.02.2012 13:07:33)

Неактивен

 

#14 17.02.2012 13:13:40

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Поиск по сайту по 3 таблицам

Это уже вопрос php. Если нужно записать в одну переменную, то зачем вам 3 запроса, тем более, что вы справились с union?

Неактивен

 

#15 17.02.2012 13:32:52

anonym
Участник
Зарегистрирован: 17.02.2012
Сообщений: 14

Re: Поиск по сайту по 3 таблицам

vasya написал:

Это уже вопрос php. Если нужно записать в одну переменную, то зачем вам 3 запроса, тем более, что вы справились с union?

Для дальнейшего развития. Спасибо за помощь.

Отредактированно anonym (17.02.2012 14:34:56)

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson