2

申し訳ありませんが、この質問の仕方がわかりませんが、1 つのテーブルでチケットを作成するヘルプ デスク アプリケーションに取り組んでいます。ユーザーを格納する別のテーブルもあります。私の問題はチケットテーブルにあります。チケットを作成したユーザー、チケットを解決する技術者、チケットを監視するユーザーをリストしました。3 人のユーザーはすべて users テーブルを参照します。では、チケット テーブルに対してクエリを実行し、ユーザーを格納する同じテーブルを参照する 3 人のユーザーすべてを取得するにはどうすればよいでしょうか?

表1: チケット

1) Ticketnumber
2) EnteredBy             User 100
3) Issue
4) FixedBy               User 102
5) FixedByNotes
6) ResponsilbeUser       User 103

表 2: ユーザー

1) UserID
2) UserName

私が今できることは、次のようなものです。

Select Ticketnumber, EnteredBy, Issue, UserName FROM Tickets INNER JOIN Users 
       ON Tickets.EnteredBy = Users.UserID

ありがとうスティーブ

4

3 に答える 3

5

現在のクエリを次のように拡張できます。

Select Ticketnumber, Issue, Reporter.UserName, Developer.UserName, Manager.UserName FROM Tickets 
INNER JOIN Users AS Reporter ON Tickets.EnteredBy = Reporter.UserID 
INNER JOIN Users AS Developer ON Tickets.FixedBy = Developer.UserID 
INNER JOIN Users AS Manager ON Tickets.ResponsibleUser = Manager.UserID
于 2012-06-13T13:36:11.193 に答える
3

すべての名前を取得する場合は、ジョイント テーブルのエイリアスが必要です。

Select Ticketnumber, Issue, Informers.UserName, Fixers.UserName, Supervisors.UserName FROM Tickets 
INNER JOIN Users Informers ON Tickets.EnteredBy = Users.UserID 
INNER JOIN Users Fixers ON Tickets.FixedBy = Users.UserID 
INNER JOIN Users Supervisors ON Ticket.ResponsibleUser = Users.UserID
WHERE...
于 2012-06-13T13:43:13.463 に答える
1

私はあなたの言葉を理解できないので申し訳ありませんが、私があなたのニーズを正しく想定していれば..試してみるだけで、これはあなたを助けることができます..

それらのいずれかが必要な場合、つまり、問題を入力、修正、または見たすべてのユーザーは、..

Select t.Ticketnumber, t.EnteredBy, t.Issue, u.UserID ,u.UserName FROM Tickets t
INNER JOIN Users u ON t.EnteredBy = u.UserID or t.FixedBy = u.UserID 
or t.ResponsibleUser = u.UserID;

また、問題を入力、修正、確認したすべてのユーザーが必要な場合は、次の方法で見つけることができます..

Select t.Ticketnumber, t.EnteredBy, t.Issue, u.UserID ,u.UserName FROM Tickets t
INNER JOIN Users u ON t.EnteredBy = u.UserID and t.FixedBy = u.UserID 
and t.ResponsibleUser = u.UserID;
于 2012-06-13T14:24:02.290 に答える