質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

Q&A

解決済

1回答

3482閲覧

両方のテーブルデータのマージ

redpanda

総合スコア123

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

0グッド

0クリップ

投稿2016/10/19 10:45

下記のようなテーブルが2つあり、それぞれにno項目を持つとします。
存在するレコードは下記の通りです

テーブルA

no
100
101
200
201

テーブルB

no

100
101
300
301

このとき、SQLの実行結果として、
下記のイメージように、両方のテーブルに存在するもの、片側だけに存在するものを一度に表示したいのですが、
良いSQLはありませんでしょうか。

no1 no2
100 100
101 101
200 null
201 null
null 300
null 301

よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

Postgresであればですが、full join が使えます。mysqlはUNIONでおこなえます。

<postgres> insert into tbl_a values (100), (101), (200),(201); insert into tbl_b values (100), (101), (300),(301); select a.no, b.no from tbl_a a full join tbl_b b using(no); no | no -----+----- 100 | 100 101 | 101 200 | 201 | | 300 | 301
<mysql> select a.no, b.no from tbl_a a left join tbl_b b using(no) union select a.no, b.no from tbl_a a right join tbl_b b using(no); +------+------+ | no | no | +------+------+ | 100 | 100 | | 101 | 101 | | 200 | NULL | | 201 | NULL | | NULL | 300 | | NULL | 301 | +------+------+ 6 rows in set (0.00 sec)

SqlServerもFULL JOINができました。

sql

1<SqlServer> 2 select a.no, b.no from tbl_a a full join tbl_b b on a.no=b.no3

投稿2016/10/19 11:00

編集2016/10/19 11:50
A.Ichi

総合スコア4070

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Panzer_vor

2016/10/19 12:52

横やり失礼致します。 MySQL以外の主要DBはFULL JOINはサポートしてるので、OracleとかDB2もFULL JOINでOKですね。
A.Ichi

2016/10/19 14:16

横槍ありがとうございます。これで主要なDBはで揃いましたかね。
redpanda

2016/10/19 17:21

おかげさまで解決いたしました! 大変助かりました。ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問