我正在我的网站上开发一个高级搜索功能。基本上,我正在处理的数据存储在两个表中。
第一个表包含有关产品的基本信息(1行=1个产品,因此它是唯一的)。表结构可能如下所示:
id, title, description
第二个表包含有关产品的更多信息。该产品可以但不必在此处有任何行。但是,一个产品可能会在第二个表中存储几行。此外,第二个表中的数据应该用于高级搜索功能。表结构可能如下所示:
id, item_id (from table 1), value_id (from another table), value
我只想选择具有指定值\u id(来自第2列)的这些产品(表1):
... WHERE table1.item_id = 5 AND table2.value_id = 1000
如前所述-表2可能包含但不必包含任何通过item\u id与表1连接的行。
我曾尝试在sql中使用join/left join函数,但在本例中,当产品在表2中有3行时,查询结果将返回3行,而不是1或0(如果未找到任何结果)。
我怎么处理?
1条答案
按热度按时间lnlaulya1#
您要选择产品。所以从产品表中选择。您只想选择那些存在特定属性的属性。所以创造一个合适的
WHERE
条款。当您想在另一个表中查找数据时,可以使用EXISTS
或者IN
.