SQL INNER JOIN的左右两张表的顺序会影响结果吗?
本文介绍了SQL INNER JOIN的左右两张表的顺序会影响结果吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
牛客网的在线编程《数据库SQL实战》第三题
运用INNER JOIN解决问题时,以下两种方法得出的结果不同:
方法一:
SELECT salaries.emp_no,salaries.salary,salaries.from_date,salaries.to_date,dept_manager.dept_no
FROM salaries INNER JOIN dept_manager ON salaries.emp_no = dept_manager.emp_no
WHERE dept_manager.to_date = '9999-01-01'AND salaries.to_date = '9999-01-01'
方法二
SELECT salaries.emp_no,salaries.salary,salaries.from_date,salaries.to_date,dept_manager.dept_no
FROM dept_manager INNER JOIN salaries ON salaries.emp_no = dept_manager.emp_no
WHERE dept_manager.to_date = '9999-01-01'AND salaries.to_date = '9999-01-01'
上述两种方法仅改变INNER JOIN左右两张表的顺序,但结果却不一样,方法一能通过测试,方法二通不过。
请教一下大家,表的顺序是真的会影响结果,还是OJ系统或测试数据的Bug所致?个人倾向于后者,求解答,谢谢。
解决方案
INNER JOIN的话,表的顺序不影响运行结果。
你可以自己建表、造数据测试验证。
这篇关于SQL INNER JOIN的左右两张表的顺序会影响结果吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文