所以我刚刚遇到了一些有趣的东西,我不知道它之前是否已被回答,因为我不知道它叫什么.可以说你有两张桌子; 第一行有一行,第二行有两行.如果您运行以下语句:
SELECT t1.*
FROM table1 t1, table2 t2
Run Code Online (Sandbox Code Playgroud)
它返回两行,两者都有相同的值,但第一个表只有一行!为什么会这样?如果你没有相应地改变select子句,我不认为在from子句中有另一个表改变了什么.
您正在选择两个表的笛卡尔积.
它将返回COUNT(t1) * COUNT(t2)记录:来自t1记录的所有可能的记录组合t2.
使用ANSI语法,您的查询将读作:
SELECT t1.*
FROM table1 t1
CROSS JOIN
table2 t2
Run Code Online (Sandbox Code Playgroud)