我加入 2 个表
例如
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
"
在测试服务器上,查询被接受。
我知道如何解决该错误,但这不是问题。
然而,如果我们的测试服务器不接受此查询并且(就像生产服务器一样)抛出错误,我会非常高兴。
有谁知道是否有某种设置会使测试服务器像实时服务器一样抛出错误?
P.S.
MySQL 版本测试服务器: 5.0.32-Debian_7etch5-log
MySQL 版本直播服务器: 5.0.41-community-log
MS SQLServer 也存在类似问题,其中 2000 版接受一些不明确的查询,而 2005 版会抛出错误。基本上新版本似乎更严格。
作为一般规则,您应该在测试服务器和生产服务器上使用相同的数据库版本,以避免出现这种类型的行为,即一段代码在测试机器上工作但在生产机器上失败。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)