簡體   English   中英

跨多個表的搜索條件

[英]Search conditions across multiple tables

所以我有下表:

  • 搜索:id,查詢
  • 成分:ID,名稱
  • IngredientsRecipes:IngredientId,RecipeId
  • 食譜:ID,內容,用戶ID,createdAt

我想做的就是搜索含有某些成分的食譜。

如果我的搜索查詢是“(奶酪和馬鈴薯)或意大利面”,則應返回所有包含意大利面或以奶酪和馬鈴薯為原料的食譜。

我將如何實施這樣的事情?

注意:這不是搜索查詢的實際外觀。 我還沒有決定如何解決這個問題。

我不確定該問題的標題是什么? 我歡迎任何更合適的標題的建議。

您只需要IngredientsRecipes表即可。 它包含所有相關信息。

例如,要找到具有一組成分的一組食譜:

select ir1.recipe_id from
IngredientsRecipes ir1 inner join
IngredientsRecipes ir2 on ir1.recipe_id = ir2.recipe_id
...
IngredientsRecipes irN on ir1.recipe_id = irN.recipe_id

where 
ir1.ingredient_id = 5 and
ir2.ingredient_id = 121 and
...
irN.ingredient_id = 80;

如果您想一次進行多個查詢(由於OR),那么我建議您在單獨的查詢之間簡單地使用UNION(因為它們畢竟確實是單獨的查詢)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM