SQLSTATE[23000]: Integrity constraint violation: 1052 Column ‘user_id‘ in where clause is ambiguous

这个问题出现在where上的时候,一般指的是where条件中的字段出现了冲突,通常出现在join后有重复字段名的情况下。解决办法就是对所有where部分的字段加上数据表别名。

原来的sql拼接语句:

$viewObj = (new UsersModel)->alias('u')->join("users_bind ub", 'u.user_id=ub.user_id', 'left')->where('user_id !='.$this->userInfo['user_id'])->find();

但因两张表均有user_id字段,所以where语句处要指明哪张表的user_id,会报错
SQLSTATE[23000]: Integrity constraint violation: 1052 Column ‘user_id’ in where clause is ambiguous
修改后(添加‘u.’):

$viewObj = (new UsersModel)->alias('u')->join("users_bind ub", 'u.user_id=ub.user_id', 'left')->where('u.user_id !='.$this->userInfo['user_id'])->find();

你可能感兴趣的:(再学mysql基础,mysql,数据库)