2015-05-04 44 views
-1

我有3個表格。從主表中選擇*包括外鍵相關表

Table A 
a_id, a_name, a_description, b_id 

Table B 
b_id, b_name, c_id 

Table C 
c_id, c_name (c_name is unique hence no duplicates) 

表「A」對錶「B」有一個外鍵「b_id」。表「B」有外鍵'c_id'到表C

我想要表「A」(No where子句)的所有行。每行都有'b_id',所以我還需要表格「B」中的那個forign鍵的行詳細信息。還有'c_id'的行細節。

你能幫我實現這個有效的單一查詢嗎?我在php中使用了三個單獨的查詢和合並結果。代碼看起來複雜。我知道有更簡單和有效的方式,因爲我剛開始使用mysql。

我讓api獲取所有這些數據併發送到我的應用程序。

編輯:

  • 我做 「SELECT *」 從表 「A」
  • 然後我迭代的行的陣列和運行「從 表B選擇b_name其中B_ID = a.b_id 「
  • 然後 」從表B,其中C_ID = b.c_id「

我到底合併數組結果選擇c_name。

我需要在什麼結果。從表A *的列,從表C

+0

到目前爲止您嘗試過的是什麼? –

+0

我已編輯帖子 –

回答

0

如果我沒有錯,那麼這可能會幫助你。這裏您需要使用join

Select A.*,B.b_name as b_name,C.c_name as c_name from A left join B on A.b_id = B.b_id left join C on B.c_id = C.c_id 
+0

謝謝。我明白它在做什麼。我如何獲得「B」和「C」的名稱列?現在我得到A. *只有 –

+0

我已經更新了我的答案,您可以現在檢查它 –

+0

非常感謝。它工作但稍作修改。我不得不刪除「as b_name」和「as c_name」。你能解釋一下,我可以學習嗎?再次感謝。 –

相關問題