我正在尝试查找以下sql语句的结果数(行数)。
select distinct table1.column1,
table2.column2
from table1,
table2
union all
select table1.column1,
table2.column2
from table1,
table2;
第一个和第二个查询的结果数分别为 30 和 100 。 我预期结果为 130 ,但 actual 结果为 60 (=第一个结果的两倍? )。
此外,以下语句的结果为 200 ;
select table1.column1,
table1.column2
from table1,
table2
union all
select distinct table1.column1,
table1.column2
from table1,
table2;
我不知道为什么。谢谢。
答案 0 :(得分:0)
您正在将相同的结果加入不重复和不重复..这应该只返回不重复(第二个结果)(
如果列相同,则不需要全部并集
但只是
select distinct table1.column1,
table1.column2
from table1, table2
或 选择table1.column1, table1.column2 从table1,table2
取决于您需要不同的结果还是所有结果
无论如何,您都不应该服从130或200,而只能使用100