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

发布于 2024-11-08 19:12:02 字数 478 浏览 1 评论 0原文

我对 SQL 查询有点困惑。

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

我有以下表格:

company 表

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

postcode_areas 表

postcode | companyid
     BB1       1
     BB3       1
     BB1       2

因此,如果用户输入 BB1,那么它应该显示结果商店一和商店二。

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

I am a bit stuck with SQL queries.

User should be able to search Postcode, Company name or Location

I have the following tables:

company table

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

postcode_areas table

postcode | companyid
     BB1       1
     BB3       1
     BB1       2

So if user type in BB1, then it should show the result Shop One, and Shop Two.

If user type the name of company or location - it will just search from company table.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

孤蝉 2024-11-15 19:12:02

使用两个表的联接并对所有字段执行 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%" 获取部分查询的结果。

Use a join of both tables and do an OR-search on all fields:

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

You might use LIKE "%$QUERY%" to get results for partial queries.

兮颜 2024-11-15 19:12:02

或许:

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>

Maybe:

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>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文