私は4つのテーブルを持っています。それはすべて関係にあります。はい、彼らはお互いを愛しています:p
- 製品
- 製品カテゴリ
- 製品カテゴリの関係
- 製品画像
これら 4 つのテーブルを 1 つのクエリで結合したいのですが、これを行うための Codeigniter コードを次に示します。
function list_products($limit = 10, $offset = 0, $category)
{
$this->db->select('p.url, p.name, p.title, i.image');
$this->db->from('products p');
$this->db->join('product_categories c','c.id = r.category_id',
'left');
$this->db->join('product_category_relations r',
'r.category_id = c.id','left');
$this->db->join('product_images i',
'p.id = i.product_id AND i.default = 1','left');
$this->db->where('c.url',$this->category_url.$category);
$this->db->limit($limit,$offset);
return $this->db->get()->result();
}
この関数/クエリを実行すると、結果は "r" の定義に関するエラーになります。
「on句」の不明な列「cms_r.category_id」
クエリ:
選択し
p
ます。url
、p
。name
、p
。title
、i
。image
FROM (cms_products
p) LEFT JOINcms_product_categories
c ONc
.id
=cms_r
.category_id
LEFT JOINcms_product_category_relations
r ONr
.category_id
=c
.id
LEFT JOINcms_product_images
i ONp
.id
=i
.product_id
AND i.default = 1 WHEREc
.url
= 'カテゴリー/イルバシ' LIMIT 12
手伝って頂けますか?