SQL Server 2005における外部結合の使用法
SQL Server 2005における外部結合の使用法 I.
生徒テーブル、生徒選択テーブルの2つのテーブルがあり、テーブルのデータは次のとおりです。
生徒のテーブル
学生のコース選択フォームです。
全学生のコース選択情報を表示するには
外側joinステートメントを使った標準SQLステートメントは
use stu_course
select L.sno,sname,ssex,sage,sdept,cno,grade
from student L,sc
where L.sno=sc.sno(*)
理論的な結果は
しかし、SQLServer2005で実行すると、次のようなエラーが発生します。
メッセージ 102、レベル 15、ステータス 1、行 4
'*'付近に構文エラーがあります。
SQLServer 2005 では、対応する T-SQL 文は次のようになります。
use stu_course
select L.sno,sname,ssex,sage,sdept,cno,grade
from student L left join sc
on L.sno=sc.sno
実行した結果は
また、on の後に where 修飾子を付けることもできます。
use stu_course
select L.sno,sname,ssex,sage,sdept,cno,grade
from student L left join sc
on L.sno=sc.sno
where L.sno in(95001,95002,95003,95004)
この時点では、実行結果は
上記の例は、左外部結合クエリです。つまり、結果テーブルには、すべての
2番目のテーブルに結合条件を満たす行がある場合、対応する値が返され、そうでない場合はNULLが返されます。
SQLServer 2005における外部結合クエリの使用法(続き)。
学生テーブル、学生選択テーブル、コーステーブルの3つのテーブルがあり、以下のデータがあります。
生徒のテーブル
学生のコース選択フォームです。
カリキュラム
左結合のクエリの例。
use stu_course
select L.sno,sname,ssex,sage,sdept,cno,grade
from student L left join sc
on L.sno=sc.sno
その結果は
右結合クエリの例です。
use stu_course
select sno,course.cno,course.cname
from sc right join course
on sc.cno=course.cno
その結果は
完全な外部リンクのクエリの例。
use stu_course
select sno,course.cno,course.cname
from sc full join course
on sc.cno=course.cno
その結果は
このフルアウトレットの左右のテーブルの順番を入れ替えると
use stu_course
select sno,course.cno,course.cname
from course full join sc
on sc.cno=course.cno
その結果、やはり
上記の例からわかるように
(a) 左外部結合の場合、結果テーブルには条件を満たす最初のテーブルの行がすべて含まれ、2番目のテーブルに結合条件を満たす行があれば対応する値を返し、そうでなければNULLを返します。
右外部結合の場合、結果テーブルは条件を満たす2番目のテーブルの行をすべて含み、最初のテーブルに結合条件を満たす行がある場合は対応する値を返し、そうでない場合はNULLを返します。
完全外部結合の場合、結果テーブルは条件を満たす両方のテーブルの行をすべて含み、どちらかのテーブルに結合条件を満たす行がある場合は対応する値を返し、そうでない場合はNULLを返します。
関連
-
SQL 2005が設定できない問題を解決する
-
SQL Server 2005 インストールパス ディレクトリ変更方法まとめ
-
SQL Server 2005 で Try Catch を使って例外を処理する
-
PowerDesignerでSQL Serverデータベースをインポートする方法
-
JDBCからSql Server 2005の概要
-
SQL server 2005でリモートデータベースをローカルにインポートする方法
-
SQL2005のプロバイダです。名前付きパイププロバイダエラー。40 SQL Server への接続を開くことができません
-
sql server 2005 データベースのバックアップ・リストア グラフィックチュートリアル
-
SQL Server Connect to Server Error 233 の解決法
-
SQL Server モバイルシステムデータベース
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
複数注文の場合の償却額の計算方法について
-
SQL server 2005で自動番号フィールドを設定する方法
-
SQL2005インストール時のバージョン変更チェックでSKUPGRADE=1が発生する問題の解決法
-
Sql server 2005 インストール時に Net バージョン登録要求の警告が表示される。
-
SQL Server 2005 ミラー構築マニュアル(sql2005 データベース同期ミラーリングソリューション)
-
SQL Server のテーブルに CSV ファイルをインポートする方法
-
SQL Server 2005 Management Studio Express Enterprise Managerで英語を簡体字中国語に変換する方法
-
sql2005 ローカルコンピュータの SQL SERVER サービスが起動し、その後停止する 解決方法
-
SQL Server 2005データベースミラーリング関連知識の簡単な説明
-
SQL Server 2005のインストールと設定方法のグラフィックチュートリアルは、Win7のすべてのバージョンと完全に互換性があります。