是否有可能写连接查询不ON
语句? 如何做这些连接不同LEFT JOIN, RIGHT JOIN
作品。
Answer 1:
MySQL的文档涵盖这个话题。
这里是一个梗概。 当使用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
条款需要一个左或右外连接,这样的讨论是不相关的他们。
如果您需要了解不同类型的连接,那么你需要做的基于关系数据库的一些研究。 计算器不是讨论该级别的适当位置。
Answer 2:
见在一些示例http://www.sitepoint.com/understanding-sql-joins-mysql-database/
您可以使用,而不是“ON”“使用”作为查询
SELECT * FROM table1 LEFT JOIN table2 USING (id);
Answer 3:
您可能还需要调查使用UNION,它结合了多个表的一个输出的: SQL -结合两个表的一个输出
文章来源: How to use mysql JOIN without ON condition?