当我在SELECT
的{{1}}子句中添加新参数时,我会得到更多记录......这怎么可能?是UNION
只是将它们混合在一起吗?例如:
UNION
列是“IN”或“OUT”,这就是我用来分隔两者的。
EDIT2:UNION ALL给了我80条记录,就像它应该的那样,但它很奇怪,因为我的两个SELECT语句绝对不同。
最终编辑:最终问题是我的一个SELECT语句中的记录不是DISTINCT,而是在两个SELECT语句之间。谢谢大家。
code
答案 0 :(得分:5)
将UNION
更改为UNION ALL
,您应该得到相同的结果。 UNION
选择不同的行,UNION ALL
应选择所有行。
答案 1 :(得分:3)
默认情况下,UNION选择不同的结果,结果集之间必须有重复。
答案 2 :(得分:0)
union all
将解决您的问题,如前一个答案所述,它仅选择不同的值
答案 3 :(得分:-3)
union就像一个产品
x1,x2 and y1,y1
你会得到一个笛卡尔积:
x1,y1
x1,y2
x2,y1
x2,y2
我想你想加入,所以你可以这样做:
SELECT
f.key
, f.date
, f.code
, f.cost
FROM a.fact f
JOIN
SELECT
f2.key
, f2.date
, f2.code
, f2.cost
FROM a.fact2 f2
ON f.key = f2.key
希望很清楚