2つのテーブルがあります。(それぞれNo列が主キーです)
表A(名称:Tbl_A)に2レコードあります。
No, Str ←列名
10,str_1 ←データ
20,str_2 ←データ
表B(名称:Tbl_B)に2レコードあります。
No, Name ←列名
10,Name_1 ←データ
30,Name_3 ←データ
このテーブルを結合して、以下のデータ(3レコード)を抽出するSQL文を教えてください。
No, Str, Name ←列名
10,str_1,Name_1 ←データ
20,str_2,(null) ←データ
30,(null),Name_3 ←データ
ポイントは、「どちらかの表にあるデータは全て抽出したい」ということです。
よろしくお願いします。
No.4
- 回答日時:
SELECT * FROM tbl_a FULL OUTER JOIN tbl_b ON (tbl_a.no = tbl_b.no
)No.3
- 回答日時:
>#2
>ほとんどの市販の参考書にでていますので、一冊買われる事をお勧めいたします。
貴殿も読んだ方がよい。
というか、質問内容を良く読んだ方がよい。
質問の回答ですが..
外部結合以外にも、幾つかの解決法が考えられます。
ただし、効率的にどれを選択すべきかは、実行計画で確認し、適切なモノを
選択してください。
例えば、
8i以降のインラインビューを使ってみる。
SELECT
A.NO,
(SELECT B.STR FROM TBL_A B WHERE A.NO=B.NO) STR,
(SELECT C.NAME FROM TBL_B C WHERE A.NO=C.NO) NAME
FROM
(SELECT NO FROM TBL_A UNION SELECT NO FROM TBL_B)
集計関数で勝負してみる。
SELECT NO,MAX(STR) STR,MAX(NAME) NAME
FROM
(SELECT NO,STR,NULL AS NAME FROM TBL_A UNION SELECT NO,NULL,NAME FROM TBL_B)
GROUP BY NO
といったカンジで、いろいろな解決法が存在します。
No.2
- 回答日時:
Select Tbl_A.No,Tbl_A.Str,Tbl_B.Name From Tbl_A,Tbl_B Where Tbl_A.No = Tbl_B.No
です。
このあたりはどのSQLでもほとんどかわりません。
ほとんどの市販の参考書にでていますので、一冊買われる事をお勧めいたします。
回答ありがとうございました。
ただ、この方法では両方の表にデータが存在するキーのみ抽出してしまいます。
今回は単純な外部結合だと、どちらかの表に存在するデータしか抽出できなかったので質問させていただきました。
質問ポイントの説明不足だったのかもしれませんね。すみませんでした。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- JavaScript 以前の質問だと、どの条件でも配列が表示されてしまいます。 1 2022/07/09 11:40
- PHP PHPで入力フォームでデータを確認表示画面まで送る流れを日本語で理解したいのです。 1 2023/05/29 19:12
- PHP phpでこの記述をもっと簡単に書く方法はないでしょうか…? 3 2022/11/16 19:57
- PHP 配列の値の更新方法について 1 2022/08/05 09:49
- Excel(エクセル) Excelの関数でこんな処理ができますか 1 2023/02/08 13:46
- JavaScript sessionStorageを調べています。 1 2023/06/20 12:41
- Excel(エクセル) エクセルで沢山のレコードの最後に追記するには? 7 2023/04/10 13:27
- Visual Basic(VBA) VBAで、1つのエクセルで、2つのシートからもう1つのシートに条件のある転記コードを教えてください。 1 2023/03/16 18:07
- JavaScript gasについて 1 2022/05/31 21:51
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SELECTで1件のみ取得するには?
-
SQL>UPDATEと同時にその件数を...
-
AccessVBAでリンクテーブルの参...
-
☆☆☆☆SQL Olacle 3つ以上の文字...
-
プロシージャで変数をテーブル...
-
[Access]時間帯の重複チェック
-
GROUP BYを行った後に結合した...
-
データセットのレコード更新が...
-
Oracleでの文字列連結サイズの上限
-
GROUP BYを使ったSELECT文の総...
-
Accessで別テーブルの値をフォ...
-
実績累計の求め方と意味を教え...
-
ファイル書込みで一行もしくは...
-
ACCESSで大量の更新を行うと「...
-
キーが同じを複数行を1行にま...
-
OracleのSQL*PLUSで、デー...
-
SET句内で複数の条件を指定して...
-
レコードが存在しなかった場合
-
SELECTの結果で同一行を複数回...
-
DataGridViewの、選択されてい...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SELECTで1件のみ取得するには?
-
Date型にNULLをセットしたい V...
-
SQL>UPDATEと同時にその件数を...
-
sqlplusの処理が途中でとまる
-
oracleのinsert select性能
-
ORDER BY 半角カナ
-
☆☆☆☆SQL Olacle 3つ以上の文字...
-
AccessVBAでリンクテーブルの参...
-
SELECTでの指定行からの指定行...
-
[Access]時間帯の重複チェック
-
取得するデータの件数指定、MyS...
-
PLSQLで変数に格納されたSQL文...
-
PostgreSQLで小数点以下を処理...
-
サブクエリ内のORとANDについて
-
異なるDB間でのJOINやVIEWについて
-
ACCESSのSQLの書き方
-
表の結合について
-
SELECTについて
-
ACCESSとORACLEで抽出結果が異なる
-
SQL文(最新データ且つ条件付)...
おすすめ情報