我一直在CodeIgniter中竊取一週左右,僅僅是因爲我沒有理解RoR的能力。我已經設法創建了一些基本的模型,視圖和控制器,但是現在我已經開始考慮到我正在使用多個模型的事實。基本的CodeIgniter/SQL概念 - 用一個表中的數據替換另一個表中的數據
我的問題可能與基本的SQL有關,但我期望CodeIgniter中有功能允許返回的行將某些數據字段替換爲來自其他表的信息。如果我知道這個概念在SQL中被稱爲什麼,那麼我至少知道該在Docs中尋找什麼,但我只是一個初學者。我想至少在這裏有一些基本的知識,所以我可以詳細閱讀。
例如,假設我有一個公司表(公司模型),它只有兩個字段,'id'設置爲主鍵,'Company_name'爲varchar。另外,假設我有一個商店表(商店模型),它有四個字段,如'address','id'(主鍵)和company_id,它是公司表中的索引。
該公司可能是這樣的:
ID Company_name
------------------------------------------------
1 CompanyA
2 CompanyB
3 CompanyC
這些商店可以是這樣的:
ID Store_name Address Company_ID
------------------------------------------------
1 StoreA 12 Main St. 1
2 StoreB 33 First Ave. 1
3 StoreC 9 Broad Rd. 2
4 StoreD 873 Wide Blvd. 3
5 StoreE 8103 Water St. 1
凡CompanyID領域涉及的表背到公司表。
如果我做笨一個基本的查詢返回所有「商店」爲:
$this->db->get('stores');
我就能去通過行的結果行,但COMPANY_ID領域仍將是一個索引值。有沒有辦法執行查詢,以便Company_ID字段在返回的結果中由公司表中的相應公司名稱自動替換?這個想法是,我想創建一個結果表看起來像下面這樣:
Store Name Address Company Name
------------------------------------------------
StoreA 12 Main St. CompanyA
StoreB 33 First Ave. CompanyA
StoreC 9 Broad Rd. CompanyB
StoreD 373 Wide Blvd. CompanyC
StoreE 8103 Water St. CompanyA
一個簡單的現實世界的例子是屬於母公司或類似的東西快餐連鎖店。
不知道該怎麼解釋。 :/
謝謝。我會閱讀加入。至少現在我知道這個概念被稱爲什麼。 – panagioti 2012-02-12 03:57:31
只需跟進一下你的建議解決方案。爲什麼選擇company.Company_name命令?我們正在從沒有company_name字段的商店表中獲取字段,我們後來說我們正在使用第二行中的「商店」表。這有點奇怪。 – panagioti 2012-02-12 04:02:04
儘管自己編寫查詢在這個上下文中沒問題,因爲查詢不使用任何__user控制的內容___,如果查詢是使用任何__user控制的內容__構建的,那麼最好是讓代碼點火器爲您構建查詢,因爲它會處理逃逸等。 – Hailwood 2012-02-12 04:21:36