我有两个查询,Q1和Q2。加入sql给我奇怪的结果
Q1为每个演示和日期生成一个结果。
Q2为每个演示,日期和地点生成一个结果。
而且,从第二季度给定的演示和网站上的日期将与Q1一些重叠,
但是从第一季度的所有日期将不会在那里,甚至有可能在第二季度一些新的日期是不在Q1。
我想要做的是生成一个结果表,其结果基本上重复了Q1(行下方的行)等于Q2中的网站数。
第二季度的结果应该在第二栏中,并在日期和演示中进行匹配。
如果Q1中的日期不存在于Q2的该站点中,则该条目应为零或为空。我知道这可以通过连接来实现,但我无法实现它的工作。我试过 -
select a.result, b.site, b.result from
(Q1) as a right join (Q2) as b on a.demo = b.demo and a.date=b.date
但这产生了一些奇怪的结果。 Q2的每个站点的a.result条目都不相同,但它们不应该是这样。
编辑 - 这里是我想要做的事 -
Q1 -
demo | date
------------------------------
1 | 10/31/2013
1 | 11/01/2013
2 | 11/02/2013
Q2 -
demo | site | date
------------------------------
1 | A | 10/31/2013
1 | A | 11/01/2013
2 | B | 11/01/2013
2 | B | 11/02/2013
期望的结果 -
demo | date | site
---------------------------------------
1 | 10/31/2013 | A
1 | 11/01/2013 | A
2 | 11/02/2013 | null
1 | 10/31/2013 | null
1 | 11/01/2013 | B
2 | 11/02/2013 | B
我没有理解你的一切写,但我摔倒了,你应该尝试使用'左join'代替。 –
您可以添加一些示例输入和输出吗?还有你的dbms? – unlimit
这有点难以理解,你可以通过发布Q1和Q2产生的结果(样本数据)以及你想得到的结果来做。 –