1. ホーム
  2. データベース
  3. アクセス

INNER JOIN構文で複数のテーブルを結合してレコードセットを作成する

2022-01-23 22:52:58
なぜなら、場合によっては、数値データ型を対応するテキスト名で表示する必要があり、レコードセットを作成するための複数テーブル結合の問題に遭遇するからです。たとえば、会員登録システムの場合、5つのテーブル、会員情報データテーブルmember、会員IDテーブルMemberIdentity、会員権利テーブルMemberLevel、会員カテゴリテーブルMemberSort、会員婚姻状況テーブルWedlockです。もしすべての会員登録情報を表示するには、これらの4つのテーブルを接続する必要があります、それ以外の場合は会員情報の一部がテキスト名かもしれません表示することがあります。そうでなければ、人々が見る会員情報のいくつかは、単にデータ番号であるかもしれません。 
    会員区分テーブルのデータテーブルには、1が一般会員、2が上級会員、3が終身会員とありますが、表示時に会員区分テーブルと会員詳細データテーブルをリンクしないと、一般会員の登録情報を見るときに、その区分が1としか表示されず、誰が1が一般会員とわかるでしょうか。そこで、会員区分テーブルと会員詳細データテーブルを関連付けると、1が一般会員、2が上級会員、3が終身会員と表示されるようになりますが、いかがでしょうか。同様に、他の2つのテーブルも会員詳細データテーブルと関連付けて、データ番号を対応する名前として表示する必要があります。 
    ステップ1:AccessソフトでMemberという名前のデータベースを作成し、その中に5つのテーブルを構築します。会員情報データテーブルmember、MemberIdentityテーブル、MemberLevelテーブル、MemberSortテーブル、会員婚姻状況Wedlockテーブルである。 
    会員情報データテーブルの会員です。 
    MemberID:自動番号、主キー(ID番号) 
    MemberSort:数値(メンバーカテゴリー) 
    MemberName: テキスト、メンバー名 
    パスワード:テキスト(会員パスワード) 
    MemberLevel: 数値(メンバー権限) 
    MemberIdentity: 数字 (会員資格) 
    婚姻関係:番号(婚姻の状況) 
    MemberQQ:テキスト(QQ番号) 
    MemberEmail: テキスト (メンバーのメールアドレス) 
    MemberDate: 日時(会員登録日) 
    MemberIdentity テーブル。 
    MemberIdentity: 自動番号、主キー(ID番号) 
    IdentityName: テキスト (メンバーIDの名前) 
    MemberLevel:メンバーパーミッションテーブル。 
    MemberLevel:自動番号、主キー(ID番号) 
    LevelName: テキスト (メンバー特権名) 
    MemberSort: メンバーカテゴリー表。 
    メンバーソート:自動番号、主キー(ID番号) 
    SortName:テキスト(メンバーカテゴリー名) 
    会員の婚姻状況フォーム Wedlock 
    Wedlock:自動採番、主キー(ID番号) 
    WedlockName: テキスト (メンバーの婚姻状況カテゴリー) 
    説明 5つのテーブルを構築した後、好きなカテゴリーを設定することができます。例えば会員権では、"無報酬会員"と"有料会員"の2つを設定し、その番号は"1", "2" 、例えば3つを設定すると、第3オプション番号は当然、 "1", "2" になります。オプションを3つ設定した場合、3つ目のオプションの番号はもちろん "3"である。 
    次に、quot;1", "2" といった数字を "unpaid members" と "paid members" と表示しなければ、誰が "1" が "unpaid member" で "2" が "paid member" だとわかるでしょうか? paid members" ですか? 
    ステップ2:DSNデータソースの構築、レコードセットの構築 
    Dreamweaver MXソフトを起動し、会員登録情報表示ページにConnMember(他の名前でも可)という名前のDSNデータソースを作成します。 
    Server Behavior]パネルの["Bind"]をクリックして、[MemberShow]というデータセットを作成し、["Connections"]にConnMember、[Select Member]に["Table"]を選択してすべての列、および["Sort"]にMemberDate、降順の順に選択します。SQLボックスで自動生成されたコードを修正するには、["Advanced"]ボタンをクリックします。 
    元のコードは
    SELECT *を選択します。 
    FROM 会員 
    ORDER BY MemberDate DESC 
    というコードに変更します。 
    SELECT *を選択します。 
    FROM ((Member INNER JOIN MemberSort ON Member.MemberSort=MemberSort) INNER JOIN MemberLevel ON Member.MemberSort) INNER JOIN MemberLevel ON Member.MemberSort=MemberSort=MemberSort.MemberSort) MemberLevel) INNER JOIN MemberIdentity ON Member.MemberIdentity=MemberIdentity) INNER JOIN Wedlock ON Member.MemberLevel) INNER JOIN Member.MemberIdentity=MemberIdentity.MemberIdentity) INNER JOIN Member.MemberIdentityON Member.MemberLevel Wedlock 
    ORDER BY MemberDate DESC 
    コードを修正したら、"OK" をクリックして完了です。 
    これで、レコードセットを開くと、5つのテーブルのすべてのフィールドがMemberShowレコードセットに統合されているので、フィールドを表示したいセルで対応するフィールドをバインドするだけです。これは良いことです。すべての数値が対応する名前に変わりました。例えば会員権では、もはや数字 "1" と "2" という形ではなく、 "unpaid members " と "Paid Member" という名前に対応する名前に変わりました。他の数字も表示されるテキスト名になっていますね。 
    注意 
    ● 英文の半角句読点を必ず使用し、単語と単語の間に半角スペースを空けて文字を入力してください。 
    データテーブルを作成する際、あるテーブルと複数のテーブルを結合する場合、そのテーブルのフィールドは "numeric"データ型でなければならず、複数のテーブルの同じフィールドは主キーで"auto-number"データ型でなければなりません。そうでない場合は、正常に結合することは困難です。 
    コードのネストによる手軽な方法。例えば、5つのテーブルを結合したい場合、4つのテーブルを結合するコードに前括弧と後括弧を追加し(前括弧はFROMの後に、後括弧はコードの最後に追加)、さらに後括弧の後に "INNER JOIN テーブル名 X ON テーブル 1.field number = テーブル X.field number" というコードを追加するだけなので、データテーブルを無限に結合できる :) 。 
    シンタックス形式です。 
    実は、INNER JOIN ......ONの構文形式は、次のようにまとめることができる。 
    FROM ((表1 INNER JOIN 表2 ON 表1.フィールドNo. = 表2.フィールドNo.) INNER JOIN 表3 ON 表1.フィールドNo. = 表3.フィールドNo.) INNER JOIN テーブル 4 ON メンバー.フィールド番号 = テーブル 4.フィールド番号) INNER JOIN テーブルX ON メンバー.フィールド番号 = テーブルX.フィールド番号) 
    その書式を適用すればOKです。 
    既成のフォーマットの例。 
    わかりやすくしましたが、初心者にも対応できるように、この会員登録システムの例として、既成の構文書式例を紹介します。 
    2つのデータテーブルをリンクさせる使用方法。 
    FROM Member INNER JOIN MemberSort ON Member.MemberSort=MemberSort.MemberSort 
    構文形式をまとめると、次のようになります。 
    FROM テーブル1 INNER JOIN テーブル2 ON テーブル1.フィールド番号 = テーブル2.フィールド番号 
    3つのデータテーブルを結合する使用法。 
    FROM (Member INNER JOIN MemberSort ON Member.MemberSort=MemberSort. メンバーレベル  
    構文形式をまとめると、以下のようになります。 
    FROM (テーブル1 INNER JOIN テーブル2 ON テーブル1.フィールド番号 = テーブル2.フィールド番号) INNER JOIN テーブル3 ON テーブル1.フィールド番号 = テーブル3.フィールド番号 
    4つのデータテーブルを結合する使用法。 
    FROM ((Member INNER JOIN MemberSort ON Member.MemberSort=MemberSort.MemberLevel) INNER JOIN MemberIdentity ON Member.MemberIdentity=MemberIdentity.MemberIdentity) INNER JOIN MemberIdentityON MemberIdentityON MemberIdentity=MemberIdentityON MemberIdentityON MemberIdentity=MemberIdentity) 
    構文形式をまとめると、次のようになります。 
    FROM ((テーブル 1 INNER JOIN テーブル 2 ON テーブル 1.Field Number = テーブル 2.Field Number) INNER JOIN テーブル 3 ON テーブル 1.Field Number = テーブル 3.Field Number) INNER JOIN テーブル 4 ON メンバー .Field Number = テーブル 4.Field Number) 
    5つのデータテーブルを結合する使用法。 
    FROM ((Member INNER JOIN MemberSort ON Member.MemberSort=MemberSort.MemberLevel) INNER JOIN MemberIdentity ON Member.MemberIdentity.MemberIdentity) INNER JOIN Wedlock ON Member.MemberIdentity=MemberIdentity.MemberLevel) INNER JOIN Member.MemberIdentity=MemberIdentity=MemberIdentity=MemberSort.MemberLevel) Wedlock 
    構文形式をまとめると、次のようになります。 
    FROM ((テーブル 1 INNER JOIN テーブル 2 ON テーブル 1.Field No. = テーブル 2.Field No.) INNER JOIN テーブル 3 ON テーブル 1.Field No. = テーブル 3.Field No.) INNER JOIN テーブル4 ON メンバー.フィールド番号 = テーブル4.フィールド番号) INNER JOIN テーブル5 ON メンバー.フィールド番号 = テーブル5.フィールド番号)