Поисковый запрос - почтовый индекс, название компании или местоположение - PullRequest
0 голосов
/ 20 мая 2011

Я немного застрял с запросами SQL.

Пользователь должен иметь возможность искать почтовый индекс, название компании или местоположение

У меня есть следующие таблицы:

фирменный стол

companyid |     name        | location
      1      Shop One           New York
      2      Shop Two           France

Таблица почтовых индексов

postcode | companyid
     BB1       1
     BB3       1
     BB1       2

Так что, если пользователь наберет BB1, то он должен показать результат Shop One и Shop Two.

Если пользователь введет название компании или местоположение - он будет просто искать из таблицы компании.

Ответы [ 2 ]

2 голосов
/ 20 мая 2011

Используйте объединение обеих таблиц и выполните ИЛИ-поиск по всем полям:

SELECT DISTINCT c.* FROM company c JOIN postcode_areas p USING (companyid)
WHERE c.name = "$QUERY" OR c.location = "$QUERY" OR p.postcode = "$QUERY";

Вы можете использовать LIKE "%$QUERY%", чтобы получить результаты для частичных запросов.

1 голос
/ 20 мая 2011

Может быть:

select distinct c.*
from company c
join postcode_areas p on p.company_id = c.company_id
where c.name like <input>
or c.location like <input>
or p.postcode like <input>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...