私はデータベースに2つのセクションを持っています。下書きとアルバム。だから、アルバムのドラフトを手に入れます。下書きには要件があり、後でアルバムが作成されます。そのアルバムには要件もありますが、両面の要件は個別に入力されます。一部は変更され、削除されたり、新しいものが追加されたりします。アルバムが特定のドラフトから来ていると割り当てられたときに、それらの要件を比較するクエリを作成しようとしています。SQL:要件を結合/比較するためのクエリを監査しますか?
は、テーブルの構造は次のようになります。
下書き:ID、ドラフトフィールド
ドラフトの要件:ID、ドラフトFK、要件の種類FK
アルバム:ID、Drafk FKは(すぐに必要ではありませんこれがnullでない場合、唯一、)、アルバムフィールド案に対して監査することができるようになります
アルバム要件:ID、アルバムFK、要件の種類FK
だから私は、次のようにクエリを作成したい:
ドラフトフィールド、アルバムフィールド、ドラフトの要件、アルバムの要件
それは(コードを言い訳のようになります10個の要件がある基本的にあれば、望みましたあなたが本当に見ることができるように)、テーブルを作成しよう:
<style type="text/css">
.tg {border-collapse:collapse;border-spacing:0;}
.tg td{font-family:Arial, sans-serif;font-size:14px;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;}
.tg th{font-family:Arial, sans-serif;font-size:14px;font-weight:normal;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;}
.tg .tg-yw4l{vertical-align:top}
</style>
<table class="tg">
<tr>
<th class="tg-yw4l">Draft Req</th>
<th class="tg-yw4l">Album Req</th>
</tr>
<tr>
<td class="tg-yw4l">R1</td>
<td class="tg-yw4l">R1</td>
</tr>
<tr>
<td class="tg-yw4l">R2</td>
<td class="tg-yw4l"></td>
</tr>
<tr>
<td class="tg-yw4l">R3</td>
<td class="tg-yw4l"></td>
</tr>
<tr>
<td class="tg-yw4l"></td>
<td class="tg-yw4l">R4</td>
</tr>
<tr>
<td class="tg-yw4l">R5</td>
<td class="tg-yw4l">R5</td>
</tr>
<tr>
<td class="tg-yw4l">R7</td>
<td class="tg-yw4l"></td>
</tr>
<tr>
<td class="tg-yw4l"></td>
<td class="tg-yw4l">R8</td>
</tr>
<tr>
<td class="tg-yw4l">R9</td>
<td class="tg-yw4l">R9</td>
</tr>
</table>
これはドラフトのためだけの基本的な情報と、クエリの最初の部分でありますアルバム:
SELECT vw_CMP_Contacts.ContactNo, vw_CMP_Contacts.ContactName, vw_CMP_Matches.MatchNo, vw_CMP_Matches.MatchName,
tblContactDraft.txtOrganization, tblDraftStatus.txtDraftStatus, tblMAlbumStatus.txtAlbumStatus, tblAlbumType.txtAlbumType
FROM ((((vw_CMP_Matches
INNER JOIN (tblMAlbums INNER JOIN tblContactDraft ON tblMAlbums.FKContactDraft = tblContactDraft.ID) ON vw_CMP_Matches.CM_MID = tblMAlbums.FKMatch)
INNER JOIN tblDraftStatus ON tblContactDraft.FKDraftStatus = tblDraftStatus.ID)
INNER JOIN tblMAlbumStatus ON tblMAlbums.FKMAlbumStatus = tblMAlbumStatus.ID)
INNER JOIN tblAlbumType ON tblMAlbums.FKAlbumType = tblAlbumType.ID)
INNER JOIN vw_CMP_Contacts ON vw_CMP_Matches.ContactNo = vw_CMP_Contacts.ContactNo
次に私は、ドラフトFKにより、ドラフトの要件に参加するtbldraftreqsし、そしてFK reqをタイプ別REQタイプがあります。私はtblalbumreqsのアルバムのために同じを持っています。
私はそれらを結合しようとすると、どちらの要件もありますが、結果は得られません。問題は、私は直接ドラフトにアルバムに参加していますが、両方の要件が同じであるかどうかによって、両方の要件が必要であり、一緒にまたは単独で並べる必要があります。
意味がありますか?
私はこの難解を解決するためのあらゆる指針を愛しています!
サンプルデータ、正常に動作しなかったクエリ、取得した結果、取得しようとしている結果を表示します。 –