首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在没有条件的情况下使用mysql JOIN?

如何在没有条件的情况下使用mysql JOIN?
EN

Stack Overflow用户
提问于 2013-05-10 04:54:33
回答 3查看 165.9K关注 0票数 119

有没有可能在没有ON语句的情况下编写连接查询?这些连接有什么不同,LEFT JOIN, RIGHT JOIN如何工作。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-05-10 05:17:29

MySQL documentation介绍了此主题。

这是一个概要。使用joininner join时,on条件是可选的。这不同于ANSI标准,也不同于几乎任何其他数据库。效果是一个cross join。类似地,您可以将SQL子句与cross join一起使用,这也与标准on不同。

交叉连接创建一个笛卡尔乘积--即第一个表中的1行和第二个表中的1行的每一种可能的组合。一个有三行('a‘、'b’和'c')的表和一个有四行(比如1、2、3、4)的表的交叉连接将有12行。

在实践中,如果您想要进行交叉连接,则使用cross join

代码语言:javascript
复制
from A cross join B

远比以下内容更好:

代码语言:javascript
复制
from A, B

和:

代码语言:javascript
复制
from A join B -- with no on clause

on子句是右连接或左连接所必需的,因此讨论与它们无关。

如果您需要了解不同类型的连接,则需要对关系数据库进行一些研究。Stackoverflow不是进行这种级别讨论的合适场所。

票数 175
EN

Stack Overflow用户

发布于 2013-10-30 18:35:57

查看http://www.sitepoint.com/understanding-sql-joins-mysql-database/中的一些示例

您可以使用'USING‘代替查询中的'ON’

代码语言:javascript
复制
SELECT * FROM table1 LEFT JOIN table2 USING (id);
票数 13
EN

Stack Overflow用户

发布于 2020-12-02 09:16:40

有几种方法可以进行交叉连接或笛卡尔乘积:

SELECT column_names FROM table1 CROSS JOIN table2;

SELECT column_names FROM table1, table2;

SELECT column_names FROM table1 JOIN table2;

忽略第三种情况下的on条件会导致交叉联接。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16470942

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档