MySQL:"where子句中的列'column_name'是不明确的"

Jac*_*cco 3 mysql mysql-error-1052

我加入了两张桌子

例如

table_A
+---------+-----------+-----------+
| user_id | ticket_id | user_name |
+---------+-----------+-----------+

table_B
+-----------+-------------+
| ticket_id | ticket_name |
+-----------+-------------+

如果我运行以下查询:

SELECT
  table_A.user_id
, table_A.user_name
, table_B.ticket_name
FROM table_A
LEFT JOIN table_B ON table_B.ticket_id = table_A.ticket_id
WHERE ticket_id = '1';

在实时服务器上,我们收到错误:" Column 'ticket_id' in where clause is ambiguous"
在测试服务器上接受查询.

我知道如何解决错误,这不是问题.

但是,如果我们的测试服务器不接受此查询并且(就像生产服务器那样)抛出错误,我会很高兴.

有没有人知道是否存在某种设置会使测试服务器像实时服务器一样抛出错误?

测试服务器
上的PS MySQL版本:Live服务器 上的MySQL版本:5.0.32-Debian_7etch5-log
5.0.41-community-log

kri*_*tof 5

MS SQLServer存在类似的问题,其中版本2000接受一些模糊的查询,而2005会引发错误.基本上,较新的版本似乎更严格.

作为一般规则,您应该在测试服务器和生产服务器上使用相同的数据库版本,以避免此类行为,其中一段代码在测试计算机上运行并且在生产时失败.