2010-02-26 225 views
-3

我將如何去做以下事情?SQL條件選擇語句

給定表格,配方,配方項目,配方指令。只有在配方的SELECT語句返回結果時,我該如何執行SELECT。

如果食譜存在,則返回RecipeItems並返回RecipeInstructions。

+2

不太確定你在這裏問什麼。更多詳情? – Andrew 2010-02-26 02:46:17

+0

如果食譜不存在,SELECT將不返回任何行。這與「只有在食譜的SELECT語句返回結果」時纔是一樣的嗎? – 2010-02-26 02:49:23

+0

如何列出一些字段以顯示他們如何相關/加入?這是任何特定類型的數據庫嗎? – JeffO 2010-02-26 02:57:30

回答

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檢索子項的標準方法。

+0

謝謝先生,那就是我正在尋找的。是的,配方是父實體,RecipeItem和RecipeInstruction包含配方的外鍵。 – Solaris 2010-02-26 02:56:18

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表。

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)領域。我會建議列出一些字段。