Поиск по нескольким таблицам - PullRequest
0 голосов
/ 27 июня 2011

У меня было четыре разных таблицы, скажем, table1, table2, table3 и table4, и эти таблицы содержат разные данные; Теперь я хочу выполнить поиск по этой 4 таблице, которая даст один результат.

table1-fields: 
id, product_name, price, product_category; 
table2-fields: 
id,company_name, company_description, location; 
table3-fields:
id, business_name, location, business_category;
table4-fields:
id, building_type, location, name

У меня была такая форма:

<form name="me" action="search.php"> 
<input type="text" name="search" style="width:inherit;" size="25"  
value="type your search here" 
onclick="me.search.value='';" style="font-size:small" height="20"/>
<input type="submit" name="Submit2" class="button" value="SEARCH"  />
</form>

В search.php я хочу что-то вроде

SELECT * FROM table1, table2, table3, table4 
WHERE table1.product_name LIKE '%" . $name .  "%' 
OR table2.company_name LIKE '%" . $name .  "%' 
OR table3.business_name LIKE '%" . $name .  "%' 
OR table4.name LIKE '%" . $name .  "%'`; 

SQL-оператор, который будет искать эти 4 таблицы одновременно.

Как я мог это сделать? Пожалуйста, помогите.

Ответы [ 2 ]

2 голосов
/ 27 июня 2011

Если есть общий элемент, например, есть идентификатор или другой идентификатор, который разделяется между каждой таблицей, вы можете использовать JOIN.Это позволит вам выбирать строки на основе данных, содержащихся в каждой таблице.

Вам потребуется предоставить больше информации о ваших таблицах и о том, что вы ищете, чтобы я мог предоставить полный пример.

0 голосов
/ 27 июня 2011

Написать запрос для каждой таблицы, который возвращает результат в тех же столбцах в каждом запросе; используйте UNION, чтобы объединить их в 1 набор результатов:

(SELECT id, name from table1 where name='bob')
UNION
(SELECT moar_id as id, nickname as name from table2 WHERE nickname='bob')
UNION
(SELECT account_id as id, fullname as name from table2 WHERE fullname='bob')

http://dev.mysql.com/doc/refman/5.0/en/union.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...