mysql - 内部连接为真

标签 mysql sql inner-join

我的 table :

   abc
+--------+
| letter |
+--------+
| a      |
| b      |
+--------+

查询:

SELECT *
FROM abc t1 INNER JOIN abc t2
ON true

结果:

+--------+--------+
| letter | letter |
+--------+--------+
| a      | a      |
| b      | a      |
| a      | b      |
| b      | b      |
+--------+--------+

ON true 是做什么的或如何工作的?

最佳答案

虽然我从未见过这种确切的语法(出于显而易见的原因 - 它确实没有什么用处,我不希望在现实世界中遇到它)我的猜测是结果将是笛卡尔积,因为condition 指出当 condition 计算为真时 t1 中的行应该与 t2 中的行匹配,它总是这样做。因此,第一组中的所有行都将与第二组中的所有行匹配。

条件永远不会针对其他任何事物进行尝试,只有它本身和 true 将始终评估为 true。

关于mysql - 内部连接为真,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31710195/

相关文章:

php - 帮助显示 MySQL 数据库中的数据

mysql - 如何使用 SQL 查询计算计费通话费用

php - 查询具体情况

mysql自连接

mysql - 来自不同表的计数补充了来自子结果的另一个计数

php - SQL中的控制流问题

mysql - 定期删除数据库中超过一个月的所有条目的最有效方法

sql - 如何从外键链接的多个表中虚拟删除数据?

C# sqlConnection 类在动态传递参数连接字符串时不接受连接字符串

mysql多对多内部连接和条件