回答編集履歴

1

sazi様の回答をもとに正しい解決方法を追加

2020/08/14 05:10

投稿

yamekodev
yamekodev

スコア17

test CHANGED
@@ -1,3 +1,75 @@
1
+ sazi様の方法を応用して、idでフィルタした結果に対して、where句で時間を指定することで実現できました。
2
+
3
+ 本当にありがとうございました。
4
+
5
+ [http://sqlfiddle.com/#!17/c64c83/14](http://sqlfiddle.com/#!17/c64c83/14)
6
+
7
+ ```PostgreSQL
8
+
9
+ select
10
+
11
+ base2.id,
12
+
13
+ base2.observed1,
14
+
15
+ base2.observed2,
16
+
17
+ base2.recorded
18
+
19
+ from (
20
+
21
+ select
22
+
23
+ base1.id,
24
+
25
+ meter1.observed AS observed1,
26
+
27
+ meter2.observed AS observed2,
28
+
29
+ camera.recorded,
30
+
31
+ meter1.name,
32
+
33
+ meter2.name,
34
+
35
+ camera.name
36
+
37
+ from ( select id from meter1
38
+
39
+ union select id from meter2
40
+
41
+ union select id from camera
42
+
43
+ ) base1
44
+
45
+ left join meter1 ON base1.id = meter1.id
46
+
47
+ left join meter2 ON base1.id = meter2.id
48
+
49
+ left join camera ON base1.id = camera.id
50
+
51
+ ) base2
52
+
53
+ where (base2.observed1 = base2.observed2)
54
+
55
+ AND (base2.observed2 = base2.recorded)
56
+
57
+ AND (base2.recorded = base2.observed1)
58
+
59
+ ```
60
+
61
+
62
+
63
+
64
+
65
+ 以下は自己解決したと勘違いしていたときの内容です。
66
+
67
+ 念のため消さずに残しておきます
68
+
69
+
70
+
71
+ ---
72
+
1
73
  要素の名前が違うことをサンプルに入れておらず、正しい質問ができていませんでした。
2
74
 
3
75
  申し訳ありませんでした。