私は2つのテーブルを特定の方法で結合する必要があります。私は自分の質問が正しいと思っていますが、わかりません。 TABLE1からSQL:3個の自己結合し、それらを一緒に結合する
select t1.userID, t3.Answer Unit, t5.Answer Demo
FROM
table1 t1
inner join (select * from table2) t3 ON t1.userID = t3.userID
inner join (select * from table2) t5 ON t1.userID = t5.userID
where
NOT EXISTS (SELECT * FROM table1 t2 WHERE t2.userID = t1.userID AND t2.date > t1.date)
and NOT EXISTS (SELECT * FROM table2 t4 WHERE t4.userID = t3.userID and t4.counter > t3.counter)
and NOT EXISTS (SELECT * FROM table2 t6 WHERE t6.userID = t5.userID and t6.counter > t5.counter)
and t1.date_submitted >'1/1/2009'
and t3.question = Unit
and t5.question = Demo
order by
t1.userID
私は日付> 2009年1月1日
table1
userID Date
1 1/2/2009
1 1/2/2009
2 1/2/2009
3 1/2/2009
4 1/1/2008
は、だから私はTABLE1から望む結果がこれであるべき明確なユーザーIDたい:私はその後、したい
userID
1
2
3
をこれを次のようなuser2のtable2に参加させてください:
table2
userID question answer counter
1 Unit A 1
1 Demo x 1
1 Prod 100 1
2 Unit B 1
2 Demo Y 1
3 Prod 100 1
4 Unit A 1
1 Unit B 2
1 Demo x 2
1 Prod 100 2
2 Unit B 2
2 Demo Z 2
3 Prod 100 2
4 Unit A 2
私はこの結果を表2にTABLE1に参加したい:
つまりuserID Unit Demo
1 B X
2 B Z
、
その後、質問=最高カウンター
ためのユニットと
は、表2から明確なユーザーIDを選択しtable2のから個別のユーザーIDを選択しますここで質問=最高のカウンターのデモ。
私がしたことは、3つの自己結合がそれら3つを一緒に結合したと思います。
あなたはそれが正しいと思いますか?
あなたはどのようなRDBMSを使用していますか? – Quassnoi
"それは正しいと思いますか?" - それを実行したときに正しい答えを出しましたか? – JohnFx
私はそれが私に正しい答えを与えていると思う、私はちょうどあなたがそれに間違って何かを見ることができるかと思っていた。私たちはSQL 2005にあります。ありがとう –