SQL条件选择语句
问题描述:
我将如何去做以下事情?SQL条件选择语句
给定表格,配方,配方项目,配方指令。只有在配方的SELECT语句返回结果时,我该如何执行SELECT。
如果食谱存在,则返回RecipeItems并返回RecipeInstructions。
答
不知道这是你在寻找什么,但假设一个关键的关系,形式的选择语句:
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检索子项的标准方法。
+0
谢谢先生,那就是我正在寻找的。是的,配方是父实体,RecipeItem和RecipeInstruction包含配方的外键。 – Solaris 2010-02-26 02:56:18
答
你想要一个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'
这是假设两者RecipeItem
和RecipeInstruction
有一个叫做RecipeID
一个foriegn关键链接回主Recipe
表。
答
这里是一个开始,但你的问题不明确:
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)领域。我会建议列出一些字段。
不太确定你在这里问什么。更多详情? – Andrew 2010-02-26 02:46:17
如果食谱不存在,SELECT将不返回任何行。这与“只有在食谱的SELECT语句返回结果”时才是一样的吗? – 2010-02-26 02:49:23
如何列出一些字段以显示他们如何相关/加入?这是任何特定类型的数据库吗? – JeffO 2010-02-26 02:57:30