我有 3 个数据库表。第一个包含配料,第二个包含菜肴,第三个包含配料和菜肴。
向这些表中添加数据很容易,但我在尝试选择特定内容时遇到了问题。
为特定菜肴重新使用所有食材。
SELECT *
FROM Ingredient As I
JOIN DishIngredients as DI
ON I.ID = DI.IngredientID
WHERE DI.DishID = 1;
但是,如果我尝试查询菜肴名称和描述,无论我使用哪种加入方式,我总是得到的结果数量等于使用的成分数量。如果我的菜中有 4 种成分然后选择返回名称和描述 4 次,我如何修改我的 slect 以仅选择一次这些值?
如果我尝试选择名称和描述,这是我的查询结果(与鹰的相同)。我正在使用 MS SQL。
ID Name Description DishID IngredientID
-- -------------------- -------------------------------------------------------------------- ------ ---------
1 Spaghetti Carbonara This delcitious pasta is made with fresh Panceta and Single Cream 1 1
1 Spaghetti Carbonara This delcitious pasta is made with fresh Panceta and Single Cream 1 2
Kuzgun 的查询对我来说效果很好。但是,从您的建议中,我发现我真的不需要加入 DishIngredient 和 Dish。当我需要名称和描述时,我可以简单地选择
SELECT * FROM Dish WHERE ID=1;
Wehn 我需要成分列表,我可以使用上面的查询。