我的数据库中有2个表,我尝试使用codeignighter加入,表categories_has_products
和products
表,以便我可以获得visible
的产品列表
如果visible
== 0,那么我不想获得这些产品。
category
表与此有点无关,因为我已经知道要收集数据的类别ID,但是我认为我最好包括仅用于参考的设计/表。
我的尝试
我自己尝试过这个但是有点生锈的SQL
$this->db->join('categories_has_products', 'categories_has_products.product_id = products.id', 'left')
->where('visible',1)->get('products');
产品
id | name | visible
---+------+--------
1 | abc | 1
2 | def | 1
3 | ghi | 0
4 | jkl | 1
5 | mno | 1
Categories_has_Products
id | category_id | product_id|
---+--------+
1 | 1 | 1
2 | 1 | 3
3 | 1 | 4
类别
id | name |
---+--------+
1 | fruit |
1 | drinks |
预期结果
id | name | visible
---+------+---------
1 | abc | 1
4 | jkl | 1
答案 0 :(得分:1)
根据您想要的结果集,您不应该使用LEFT加入。这样的事情应该有效(未经测试,自然而然)
$this->db->select('products.*');
$this->db->from('products');
$this->db->join('categories_has_products', 'categories_has_products.product_id = products.id', 'INNER');
$this->db->where('products.visible !=', 0);