繁体   English   中英

高级搜索功能-SQL

[英]Advanced Search Functionality - SQL

我正在网站上使用高级搜索功能。 基本上,我正在处理的数据存储在两个表中。

第一个表包含有关产品的基本信息(1行= 1个产品,因此它是唯一的)。 表结构可能如下所示:

id, title, description

第二张表包含有关产品的更多信息。 该产品可能但不必在这里有任何行。 但是,一种产品可以在第二个表中存储几行。 而且,第二张表中的数据应用于高级搜索功能。 表结构可能如下所示:

id, item_id (from table 1), value_id (from another table), value

我只想选择已指定value_id的这些产品(表1)(来自第2列):

... WHERE table1.item_id = 5 AND table2.value_id = 1000

正如我之前提到的,表2可以但不必包含由item_id与表1连接的任何行。

我试图在SQL中使用JOIN / LEFT JOIN函数,但是在这种情况下,当产品在表2中有3行时-查询结果将返回3行而不是1或0(如果未找到任何结果)。

我该如何处理?

您要选择产品。 因此,请从产品表中选择。 您只想选择那些存在特定属性的属性。 因此,创建一个适当的WHERE子句。 当您想在另一个表中查找数据时,可以使用EXISTSIN

select *
from items
where id in (select item_id from item_values where value_id = 1000);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM