teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

コメントを受け追記

2015/12/14 05:18

投稿

moredeep
moredeep

スコア1507

answer CHANGED
@@ -17,4 +17,42 @@
17
17
  WHERE
18
18
  main.項目1 = sub.項目1
19
19
  AND sqlNum = minSqlNum
20
- ```
20
+ ```
21
+
22
+ コメントを受け追記:
23
+
24
+ 私が載せたSQLが悪いかもしれません。
25
+
26
+ SQL結果1,2,3をUNIONしたviewをWITH句で用意しようとしていますが、
27
+ WITHの中にサブクエリを書くことはできません。
28
+
29
+ もし、SQL結果1,2,3を出すのにサブクエリを使用しているのであれば、
30
+ ↑の方法は使えません。
31
+
32
+ 以下でも出来ないですかね。
33
+
34
+ ```SQL
35
+ SELECT 項目1, 項目2, 項目3, 項目4
36
+ FROM
37
+ (SELECT 項目1, 項目2, 項目3, 項目4, sqlNum = 1 FROM SQL結果1
38
+ UNION
39
+ SELECT 項目1, 項目2, 項目3, 項目4, sqlNum = 2 FROM SQL結果2
40
+ UNION
41
+ SELECT 項目1, 項目2, 項目3, 項目4, sqlNum = 3 FROM SQL結果3) as main,
42
+ (SELECT sub2.項目1, min(sub2.sqlNum) as minSqlNum
43
+ FROM (SELECT 項目1, 項目2, 項目3, 項目4, sqlNum = 1 FROM SQL結果1
44
+ UNION
45
+ SELECT 項目1, 項目2, 項目3, 項目4, sqlNum = 2 FROM SQL結果2
46
+ UNION
47
+ SELECT 項目1, 項目2, 項目3, 項目4, sqlNum = 3 FROM SQL結果3) as sub2
48
+ GROUP BY 項目1) as sub
49
+ WHERE
50
+ main.項目1 = sub.項目1
51
+ AND sqlNum = minSqlNum
52
+ ```
53
+
54
+
55
+ あと、DB(SQL)はいくつか種類がありますが、
56
+ それごとに書き方に違いがあります。
57
+
58
+ どのDBを使用しているかによって、動作する、しないが別れてしまいます。