簡體   English   中英

返回表中僅使用一次的所有項目

[英]Return all items that are only used once in table

列出僅在一個配方中使用的所有成分的名稱(1 列,46 行)

按道理我明白這個查詢的方式是,我需要算IngredientID中的Recipe_Ingredients列以找到一個實例IngredientID只出現一次。 但我的查詢沒有返回任何結果。

我試過用count(*)sum()代替count(Ingredients.IngredientID) sum() 但兩者都沒有返回結果。

select Ingredients.IngredientName
from Ingredients
join Recipe_Ingredients on Ingredients.IngredientID = Recipe_Ingredients.RecipeID
group by Ingredients.IngredientName
having count(Ingredients.IngredientID) = 1;

數據庫結構 SQL 文件

數據庫數據 SQL 文件

在此處輸入圖片說明

你沒有加入正確的列; 它應該是

Ingredients.IngredientID = Recipe_Ingredients.IngredientID

進行此更改會給出 46 行的正確結果: 演示

請注意,像我一樣准備 dbfiddle 會讓其他人更容易回答您的問題。

僅獲取 Recipe_Ingredients 表中的成分一次。

select * from Ingredients a where IngredientID in
(
select IngredientID
from Recipe_Ingredients 
group by IngredientID
having count(*) = 1
)
select Ingredients.IngredientName
from Ingredients
join Recipe_Ingredients on Ingredients.IngredientID = Recipe_Ingredients.IngredientID
group by Ingredients.IngredientName
having count(Ingredients.IngredientID) = 1;

暫無
暫無

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

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