私は巨大なMSSQLデータベース(約120ギガ)を持っています。そのデータベースには1371個のテーブルが含まれています。それらのテーブルのうち、今のところ私が関心を持っているのは3つだけです。
使用するテーブル:
- メッセージ
- MessageUser
- ユーザー
使用するテーブル「メッセージ」のフィールド:
- 主題
- 体
- FromMessageUserID
- PriorityID
Messages.FromMessageuserIDはMessageUser.MessageUserIDと一致し
使用するテーブル「MessageUser」のフィールド:
- MessageUserID
ユーザーID
MessageUser.UserIDはUser.UserIDと一致します
使用するテーブル「ユーザー」のフィールド:
- ユーザーID
- ユーザー名
現在、次のクエリを実行できます:SELECT Subject、Body、FromMessageUserID、PriorityID FROM Messages
そして、そのように表示される結果を取得します。
件名本文FromMessageUserIDPriorityID
Sub1 Body1 1001 1
Sub2 Body2 1002 3
Sub3 Body3 1001 2
そこで、「Sub3」を件名にしたメッセージの送信者を確認したいと思います。
MessageUserテーブルを調べることから始めます。1001のMessageUserIDのUserIDが10であることがわかります。
次に、Usersテーブルに移動すると、UserID10のユーザー名が「JohnDoe」であることがわかります。
クエリを実行して、返される結果を次のようにする方法はありますか?
件名本文FromMessageUserIDPriorityID
Sub1 Body1 JohnDoe 1
Sub2 Body2 JaneDoe 3
Sub3 Body3 JohnDoe 2
値(合計4つ)がわかっているので、PriorityIDは気にしません。
これを実行する適切な方法は、JOINまたはUNIONを使用することですが、私はそれらを使用したことがなく、過去数時間に行ったすべての試みは失敗しました。
何かアドバイス?