我在尝试从两个 MySQl 表获取数据时遇到了麻烦。 在第一个表中我存储了图像文件名;在第二个表中,我存储了有关每个图像的信息;信息有两种语言,en 和 it。当然,并非第一个表中的所有图像都在第二个表中包含信息。 我正在尝试通过以下方式获取所选语言的图像信息:
$this->db->select ('
tbl_images.image,
tbl_infos.info
');
$this->db->from('tbl_images');
$this->db->join('tbl_infos', 'tbl_images.id = tbl_infos.id', 'left');
$this->db->where('tbl_images.id', $id);
$this->db->where('tbl_infos.lang', 'en');
现在...如果 tbl_infos 表有文本,查询将返回正确的数据,但如果没有存储信息,我会收到错误,因为没有检索到图像;如果我删除 lang where 子句,如果没有存储信息,我会得到图像...但我会得到带有信息的图像两次!!
我快疯了,完全陷入困境......我该如何解决这个问题?
试试这个
$this->db->join('tbl_infos', 'tbl_images.id = tbl_infos.id');
愚蠢的我...我修复了在同一 JOIN 行中写入第二个条件的问题。 因此,以下 JOIN:
$this->db->join('tbl_infos', 'tbl_images.id = tbl_infos.id', 'left');
变成:
$this->db->join('tbl_infos', 'tbl_images.id = tbl_infos.id AND tbl_infos.lang = "en"', 'left');