簡體   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