我有兩個通過HABTM鏈接的表。國家&網絡。他們通過countries_networks查找錶鏈接在一起。來自HABTM查詢的CakePHP數組結構
我需要爲每個相應的國家/地區獲取所有國家和所有相關的網絡ID。我不需要獲取網絡名稱,只需從查找表中獲取ID即可。
如果我做了一個find(全部),它給了我一個國家的數組,但沒有在我需要的結構中。我需要返回的東西聯繫這一點,但我只需要Country.countryName和CountriesNetwork.network_id:
Array
(
[0] => Array
(
[Country] => Array
(
[countryName] => Aeroplane
)
[Network] => Array
(
[0] => Array
(
[id] => 1
[CountriesNetwork] => Array
(
[id] => 1
[country_id] => 1
[network_id] => 1
)
)
[1] => Array
(
[id] => 7
[CountriesNetwork] => Array
(
[id] => 2
[country_id] => 1
[network_id] => 7
)
)
)
)
)
有沒有用的findall這樣的方式()?就好像我將字段作爲數組傳遞一樣,我似乎總是得到一個未知的列名稱SQL錯誤。 甚至是自定義查詢?非常感謝任何可能幫助的人。
謝謝RaYell,我試過,因爲它發生了,但它給了我重複的國家然後,我想格式爲'CountryName',與網絡ID或名稱的數組。 – 2009-07-29 10:35:43
是的,它重複了國家,因爲這就是LEFT JOIN的工作方式,但是我不知道你是否可以簡單地做到這一點。我想你可以突出國家,然後爲每個國家運行一個查詢來獲取網絡ID,但這將需要運行大量的查詢,而不是一個。你總是可以通過country_id對結果進行排序,並遍歷結果,並檢查當前行的country_id是否發生了變化,我不能認爲任何更簡單的事情,恐怕 – RaYell 2009-07-29 18:25:22