两个 SELECT 语句之间的 MySQL 笛卡尔积
我想在两个 SELECT 语句之间执行笛卡尔积,因为
SELECT 1, 2 INNER JOIN SELECT 3, 4 ;
我希望结果是 (1,2) 与 (3,4) 的每个组合,例如:
1 3
2 3
1 4
2 4
I want to perform a cartesian product between two SELECT statements as
SELECT 1, 2 INNER JOIN SELECT 3, 4 ;
I expect the result to be every combination of (1,2) with (3,4), like:
1 3
2 3
1 4
2 4
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
如果您指定的表没有任何
JOIN ON
子句或WHERE
子句中的等式/条件,您将获得您正在寻找的笛卡尔积。会给你你所要求的。更明确地显示它...
If you specify your tables with out any
JOIN ON
clause or equalities/conditionins in theWHERE
clause you'll get the catesian product you're looking for.will give you what you're asking for. Showing it more explicitly...
您可以使用 CROSS JOIN 子句
,其中 MyTable1 有两行包含 1 和 2; MyTable2 有两行,其中包含 3 和 4。
You can use the CROSS JOIN clause
where MyTable1 has two rows containing 1 and 2; and MyTable2 has two rows containing 3 and 4.
甚至更简单:
or even simpler:
删除单词
join
会得到完全相同的结果。Removing the word
join
gives exactly the same result.使用这个你的格式并不像你说的那样
A(1,2) 和 B(3,4)
那么交叉连接将像这样执行:
(A*B)= (1,3),(1,4),(2,3),(2,4)< /代码>
With the using this your format is not as you are saying
A(1,2) and B(3,4)
then the cross join will perform it like this:
(A*B)= (1,3),(1,4),(2,3),(2,4)