[英]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
子句。 當您想在另一個表中查找數據時,可以使用EXISTS
或IN
。
select *
from items
where id in (select item_id from item_values where value_id = 1000);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.