我有以下查询。我做了工会,以获得所需的输出,但我没有得到它。与联盟的SQL查询
create table foo (dateFact date, id int);
create table bar (dateFact date, id int);
insert into foo(dateFact, id) values('2013-03-01', 88), ('2013-03-02', 89),('2013-03-03', 90);
insert into bar(dateFact, id) values('2013-03-01', 88), ('2013-03-02', 89),('2013-03-03', 90);
select * from foo;
select * from bar;
(select dateFact, id as idA, 0 from foo order by dateFact) union (select dateFact, 0, id as idB from bar order by dateFact);
上述查询给我下面的结果:
dateFact idA 0
2013-03-01 88 0
2013-03-02 89 0
2013-03-03 90 0
2013-03-01 0 88
2013-03-02 0 89
2013-03-03 0 90
但我想:
dateFact idA idB
2013-03-01 88 88
2013-03-02 89 89
2013-03-03 90 90
感谢您的帮助!
因为使用MAX(),所以没有必要使用'UNION ALL'。 – Pedigree
@CommanderOnets。 。 。 'union'招致不必要的删除重复的开销,这在这种情况下是不需要的。 “all all”是更好的选择。 –