我有这些桌子
cat (保存类别的主要数据) id_cat, 原始名称
cat_lang (保存不同语言的猫详细信息) lang, id_cat,local_name
cat_media (保存猫媒体) id_cat, id_media, usage (可能有基本或大)
media (保存图像信息) id_media、名称、路径
我做了一个查询,它返回这样的选定类别的子类别。
$this->db->select('*')
->from('cat')
->join('cat_lang','cat.id_cat = cat_lang.id_cat','left outer')
->join('cat_media','cat.id_cat= cat_media.id_cat','left outer')
->join('media','cat_media.id_media=media.id_media','left outer')
->where('cat.id_parent',$id_cat) //comes from function
->where('cat_lang.lang',$lang)
$query = $this->db->get();
之后我将过滤大图像:
$sub_cats = $query->result_array();
$data['sub_cats']= array();
foreach($sub_cats as $key => $value)
{
if($value['usage'] == 'base' OR $value['usage'] == null)
$data['sub_cats'][] = $value;
}
$value['usage'] == null
是麻烦开始的地方。问题是在某些类别中,没有附加基本图像,并且上面的查询不返回此类别,因为它在cat.id_cat= cat_media.id_cat
条件上不匹配。
我想进入结果表:
id_cat:1 , ..., id_media = 2, usage=big
id_cat:2 , ..., id_media = null, usage=null
所以我需要它们在结果表中为空。我怎样才能做到这一点?在这里堆了几个小时。谢谢你的帮助..