是否可以在没有ON
声明的情况下编写连接查询?以及这些连接如何不同LEFT JOIN, RIGHT JOIN
的作品。如何在没有开启条件的情况下使用mysql JOIN?
回答
MySQL documentation涵盖了这个主题。
这里是一个简介。当使用join
或inner join
时,on
条件是可选的。这与ANSI标准不同,几乎与其他任何数据库不同。效果是cross join
。同样,您可以使用on
子句与cross join
,这也与标准SQL不同。
交叉连接创建一个笛卡尔积 - 也就是说,从第一个表格开始的1行和从第二个开始的1行的每个可能的组合。具有三行('a','b'和'c')以及具有四行(例如1,2,3,4)的表的交叉连接将具有12行。
在实践中,如果你想要做一个交叉连接,然后使用cross join
:
from A cross join B
比要好得多:
from A, B
和:
from A join B -- with no on clause
的on
子句是右外连接或左外连接所必需的,因此讨论是不相关的为他们。
如果您需要了解不同类型的连接,那么您需要对关系数据库进行一些研究。 Stackoverflow不适合讨论这个级别。
见http://www.sitepoint.com/understanding-sql-joins-mysql-database/
您可以使用“使用”,而不是“ON”的一些例子,如查询
SELECT * FROM table1 LEFT JOIN table2 USING (id);
如需进一步说明,两个表中的连接列必须命名为USING才能工作 – rmirabelle 2016-02-02 18:26:17
您可能还需要调查使用UNION的,它结合了多个表对于一个输出:SQL - Combine two tables for one output
这与OP的问题有何关系? – 2017-11-22 21:14:29
- 1. 在没有JOIN的情况下在MySQL中存储关系
- 2. 使用开关的情况下在蟒蛇有特殊条件
- 3. 如何在没有竞争条件的情况下重命名()?
- 4. 开关的情况下没有在JavaScript
- 5. 如何在没有json文件的情况下使用JSON?
- 6. 如何在没有插件的情况下使用fancybox和wordpress?
- 7. 如何在没有打开cmd的情况下打开steam/etc?
- 8. MySQL使用JOIN/GROUP BY时的情况
- 9. 在JOIN中继承使用UNION的情况下 - MySQL
- 10. mysql:做条件不同的情况下
- 11. 有条件的情况下加入
- 12. 如何在不使用INNER JOIN的情况下连接表?
- 13. SQL有条件更新的情况下
- 14. 如何在没有EULA的情况下启动ChromeDriver.exe?
- 15. 如何在没有Xcode IDE的情况下在Swift中开发
- 16. 如何在没有systemctl /服务工具的情况下启动mysql服务
- 17. 如何在没有黑条的情况下嵌入YouTube视频?
- 18. 如何在没有滚动条的情况下滚动Div?
- 19. 如何在没有任何图标的情况下使用NSAlert?
- 20. 情况下,当MySQL与多个条件
- 21. 如何在没有秒的情况下格式化MySQL TIMEDIFF?
- 22. 如何在没有CORS的情况下使用Yammer API调用?
- 23. 如何在没有用户access_token的情况下使用publish_pages?
- 24. 如何在没有NavgationController的情况下打开UIViewControllers和Keepstate
- 25. 如何在没有Visual Studio的情况下开发Microsoft Office AddIn
- 26. Orchard如何在没有致电RenderBody的情况下离开?
- 27. 如何在没有动画的情况下打开Android活动
- 28. 如何在没有终端的情况下打开WebStorm
- 29. 如何在没有安装开发库的情况下在C中使用sqlite3?
- 30. 如何在没有NPM的“要求”的情况下使用React?
由于“ON”子句告诉服务器表是如何相关的,所以没有。如果你的不同连接类型都给出相同的结果,那么你会以某种方式做错,并且添加一些代码可以帮助我们发现你的问题。同时,请转到[Jeff Atwood的博客](http://www.codinghorror.com/blog/2007/10/a-visual-explanation-of-sql-joins.html)2分钟介绍不同的连接类型。 – fvu 2013-05-09 21:04:40