现在,我想从model.featured=1
的所有表中选择所有列。即。
model.id
model.name
model_attributes.id
model_attributes.attributes_value
model_images.id
model_images.model_images
attributes.id
attributes.name
attributes.value
我只能进行基本级别的查询,而且我不确定我是否接近解决方案,但这是我尝试过的(不返回任何内容):
$this->db->select('*');
$this->db->from('model');
$this->db->join('model_images','model.id = model_images.model_id','RIGHT');
$this->db->join('model_attributes','model.id = model_attributes.model_id','RIGHT');
$this->db->join('attributes','model_attributes.attributes_id = attributes.id','RIGHT');
$this->db->where('model.featured', 1);
$query = $this->db->get();
return $query->result();
我如何实现我想要的目标?或者,还有其他更好的方法吗?
答案 0 :(得分:0)
//尝试此查询
$this->db->select('*');
$this->db->from('model');
$this->db->join('model_images','model_images.model_id = model.id');
$this->db->join('model_attributes','model_attributes.model_id = model.id');
$this->db->join('attributes','attributes.id = model_attributes.attributes_id');
$this->db->where('model.featured','1');
$query = $this->db->get()->result();
return $query;
答案 1 :(得分:0)
请通过以下解决方案。
$this->db->select('model.*,model_images.*,model_attributtes.*, attributes.*'):
如果它不适合你,请告诉我。
答案 2 :(得分:0)
请通过以下解决方案。如果多个表具有相同的列名,则必须为表中的每个具有相同名称的列名提供别名。因为默认情况下CI合并所有列名并生成结果。
$this->db->select('*,c.name as c_name,s.name as s_name');
$this->db->from('country c');
$this->db->join('state s', 'c.id = s.country_id');
$query = $this->db->get();