回答編集履歴
1
\(追記\)追加
answer
CHANGED
@@ -21,4 +21,15 @@
|
|
21
21
|
FROM (SELECT 名前,番号 FROM table1 UNION SELECT 名前,番号 FROM table2) x
|
22
22
|
LEFT join table2 t2 ON x.名前=t2.名前 AND x.番号=t2.番号
|
23
23
|
```
|
24
|
-
一応完成。
|
24
|
+
一応完成。
|
25
|
+
(追記)
|
26
|
+
一応完成なんですが、性能とかの問題になるとまた別です。たとえば
|
27
|
+
|
28
|
+
```SQL
|
29
|
+
//SQL3
|
30
|
+
SELECT t1.名前,t1.番号,t2.縦,t2.横 FROM table1 t1 LEFT JOIN table2 t2 ON t1.名前=t2.名前 AND t1.番号=t2.番号
|
31
|
+
UNION
|
32
|
+
SELECT 名前,番号,縦,横 FROM table2
|
33
|
+
```
|
34
|
+
こっちの方が大概の場合効率的でしょう。いずれもUNIONが重複をマージするという仕様を利用してますが、SQL2はキーの重複を除いてからキーでない情報を付加しているのに対し、SQL3は重複ありで抽出してから重複を除去してます。
|
35
|
+
※性能云々はおいておいてSQL2の方が論理的にはわかりやすいと思うのは個人的な感想。
|