我將如何去做以下事情?SQL條件選擇語句
給定表格,配方,配方項目,配方指令。只有在配方的SELECT語句返回結果時,我該如何執行SELECT。
如果食譜存在,則返回RecipeItems並返回RecipeInstructions。
我將如何去做以下事情?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檢索子項的標準方法。
謝謝先生,那就是我正在尋找的。是的,配方是父實體,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