SQL条件选择语句

时间:2010-02-26 02:44:34

标签: sql select conditional

我将如何进行以下操作?

给出表,Recipe,RecipeItem,RecipeInstruction。如果只有Recipe的SELECT语句返回结果,我该如何执行SELECT。

如果存在Recipe,则返回RecipeItems并返回RecipeInstructions。

3 个答案:

答案 0 :(得分:2)

不确定这是否是您正在寻找的,但假设有关键关系,请选择表单的语句:

SELECT ri.* FROM Recipe r
JOIN RecipeItem ri ON ri.RecipeID = r.RecipeID
WHERE r.Name = @myName -- or other criteria

SELECT ris.* FROM Recipe r
JOIN RecipeInstructions ris ON ris.RecipeID = r.RecipeID
WHERE r.Name = @myName -- or other criteria

...仅在存在配方ID时才会返回配方详细信息。这是使用SQL检索子项的标准方法。

答案 1 :(得分:0)

你想要一个INNER JOIN:

SELECT *
FROM Recipe
    INNER JOIN RecipeItem ON RecipeItem.RecipeID = Recipe.RecipeID
    INNER JOIN RecipeInstruction ON RecipeInstruction.RecipeID = Recipe.RecipeID
WHERE Recipe.[Name] = 'the recipe name'

这假设RecipeItemRecipeInstruction都有一个名为RecipeID的foriegn密钥,将其链接回主Recipe表。

答案 2 :(得分:0)

这是一个开始,但你的问题不明确:

Select RI.*
   , RInst.*
From Recipe AS R
inner join RecipeItem AS RI
on R.PK = RI.FK
inner join RecipeInstruction AS RInst
on R.PK = RInst.FK

主键(PK)需要以某种方式匹配这些表之间的外键(FK)字段。我打算建议列出一些字段。