搜索查询 - 邮政编码,公司名称或位置

时间:2011-05-20 09:26:07

标签: mysql sql database

我对SQL查询感到困惑。

用户应该能够搜索邮政编码,公司名称或位置

我有以下表格:

公司表

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

postcode_areas表

postcode | companyid
     BB1       1
     BB3       1
     BB1       2

因此,如果用户输入BB1,则应显示结果Shop One和Shop Two。

如果用户输入公司名称或位置 - 它只会从公司表中搜索。

2 个答案:

答案 0 :(得分:2)

使用两个表的连接并对所有字段进行OR搜索:

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 :(得分:1)

也许:

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>