请任何人帮助我 我的查询是
where子句中的列'id'是不明确的
SELECT u_profile.*, u_user.* FROM u_profile JOIN u_user ON u_profile.id = u_user.id WHERE id = '1' AND u_profile.id = '1'
从哪里来的id = 1我不知道请帮助我一些。
答案 0 :(得分:0)
您需要在where子句中指明表名,因为在您指明它所属的表之前,SQL不知道id
是什么。
假设您要同时找到user_id和profile_id:
SELECT u_profile.*, u_user.* FROM u_profile
JOIN u_user ON u_profile.id = u_user.id
WHERE u.user_id = '1' AND u_profile.id = '1';
答案 1 :(得分:0)
您可以在CodeIgniter中使用对于INNER JOIN :
$this->db->select();
$this->db->from('u_profile')->join('u_user', 'u_profile.id = u_user.id');
$this->db->where('u_user.id',1);
$this->db->where('u_profile.id',1);
对于 LEFT JOIN ,请使用:
$this->db->select();
$this->db->from('u_profile')->join('u_user', 'u_profile.id = u_user.id','left');
$this->db->where('u_user.id',1);
$this->db->where('u_profile.id',1);
并且Column 'id' in where clause is ambiguous
表示您在两个表中都有两列相同的ID,因此您需要使用 u_user.id AND u_profile.id 。