所以我刚刚遇到了一些有趣的东西,我不知道之前是否已经回答过,因为我不知道它叫什么。可以说你有两张桌子;第一行有一行,第二行有两行。如果您运行以下语句:
SELECT t1.*
FROM table1 t1, table2 t2
它返回两行,两者都有相同的值,但第一个表只有一行!为什么会这样?如果你没有相应地更改select子句,我不认为在from子句中有另一个表改变了什么。
答案 0 :(得分:6)
您正在选择两个表中的cartesian product。
它将返回COUNT(t1) * COUNT(t2)
条记录:来自t1
的记录与来自t2
的记录的所有可能组合。
使用ANSI
语法,您的查询将显示为:
SELECT t1.*
FROM table1 t1
CROSS JOIN
table2 t2