回答編集履歴

1

\(追記\)追加

2017/07/13 01:24

投稿

kurokoba
kurokoba

スコア276

test CHANGED
@@ -45,3 +45,25 @@
45
45
  ```
46
46
 
47
47
  一応完成。
48
+
49
+ (追記)
50
+
51
+ 一応完成なんですが、性能とかの問題になるとまた別です。たとえば
52
+
53
+
54
+
55
+ ```SQL
56
+
57
+ //SQL3
58
+
59
+ SELECT t1.名前,t1.番号,t2.縦,t2.横 FROM table1 t1 LEFT JOIN table2 t2 ON t1.名前=t2.名前 AND t1.番号=t2.番号
60
+
61
+ UNION
62
+
63
+ SELECT 名前,番号,縦,横 FROM table2
64
+
65
+ ```
66
+
67
+ こっちの方が大概の場合効率的でしょう。いずれもUNIONが重複をマージするという仕様を利用してますが、SQL2はキーの重複を除いてからキーでない情報を付加しているのに対し、SQL3は重複ありで抽出してから重複を除去してます。
68
+
69
+ ※性能云々はおいておいてSQL2の方が論理的にはわかりやすいと思うのは個人的な感想。