如何使用where子句在codeigniter中连接两个表

时间:2016-01-01 07:57:56

标签: php mysql codeigniter join ambiguous

请任何人帮助我 我的查询是

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我不知道请帮助我一些。

2 个答案:

答案 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

相关问题