2011-08-01 119 views
0

這是我的數據庫模式和我試圖鏈接的表格,我嘗試使用一個連接,但現在它正在爲每個匹配的行創建一個新結果。哪一個加入1:很多關係?

http://i.imgur.com/Ovsau.png

我目前正在建設我的查詢,現在想加入這些表一起(程序 - > Procedure_event - >資源 - > Med_item)

在這樣的場景:

eg程序X有3行procedure_events

我希望數據在一條記錄中返回給我,但包含組成該記錄的所有行。

但是它返回3行的結果如下所示:

  • 程序X - procedure_event行1
  • 程序X - procedure_event行2
  • 程序X - procedure_event行3

所以查詢結果應該是程序X - 程序事件行1,2,3

這是使用活動記錄我的笨PHP框架代碼:

$this->db->join('procedure_event', 'procedure.procedure_id = procedure_event.procedure_id' , 'left'); 

感謝

回答

1

這是LEFT JOIN如何工作。

所以查詢結果應該是程序X - procedureevent行1,2,3

我認爲你需要這樣的:How do I get a count of associated rows in a left join in MySQL?

MySQL不能返回二維陣列,或合併行。如果你需要所有的「procedureevent rows 1,2,3」,那麼就像通常一樣遍歷結果集,然後添加一個小圖標來獲取AJAX程序事件。

+0

我想我會做的是兩個單獨的查詢,並將它們的結果合併到一個數組中 – sqlmole