答案 0 :(得分:2)
该查询用于返回两个表的笛卡尔积(https://en.wikipedia.org/wiki/Cartesian_product)。
在这种情况下,100 x 0总共等于0行。类似地,100 x 10将等于1K行。
查询本身也可以用:
编写SELECT Tbl1.* FROM Tbl1 CROSS JOIN Tbl2;
OR
SELECT Tbl1.* FROM Tbl1 INNER JOIN Tbl2 ON 1 = 1;
答案 1 :(得分:2)
Select t1.* from t1,t2;
在上面的陈述中,t1,t2
执行t1和t2的笛卡尔积。但是,正如我们知道t2是空的,这个笛卡尔积的结果是一个空集(或DBMS方面的空表)。
因此,它将返回0行!
希望它会有所帮助!!
答案 2 :(得分:1)
这两个表之间应该存在关系。然后,您可以应用INNER JOIN来检索数据。
或者您可以使用以下查询。
Select t1.* from t1,t2 WHERE 1 = 1;
在开发动态查询时,1 = 1特别有用。因为它可以添加一个或多个条件而无需检查已存在的条件。
答案 3 :(得分:1)
SELECT Tbl1.* FROM Tbl1 CROSS JOIN Tbl2;
SELECT Tbl1.* FROM Tbl1 INNER JOIN Tbl2 ON 1 = 1;
In above statement tables t1,t2 perform cartesian product of t1 and t2(t1*t2)
table t1 having 100 records and table t2 having 0 records
so cartesian product of t1 and t2(t1*t2)
=100*0
=0
so it will not return any records...