我有兩個查詢,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產生的結果(樣本數據)以及你想得到的結果來做。 –