0

ねえ、私は次のクエリを持っています:

SELECT UA.Fname, UA.LName, UA.Title, UA.AccDate, UA.Address1, 
  UA.Address2, UA.City, UA.State, UA.Zip, UA.Email, UA.Phone, 
  LabCaseNum, SpecCaseNum, deadlineDate, CaseDetail, 
  AU.Fname as AuthName, AU.Lname, AU.Phone, AU.Email, AU.Role 
FROM userAccount UA 
INNER JOIN userCase UC ON UA.AccNum = UC.Userlink 
INNER JOIN authPerson AU ON UC.CaseNum = AU.UserCase 
WHERE UC.CaseNum = 7903579800;

AU table にデータがある場合、これはうまく機能します。ただし、 UC テーブルと UA テーブルには常にデータがあるにもかかわらず、 AUテーブルに何もない場合、レコードは返されません。

収集するデータがない場合、 AUテーブルを無視するように上記のクエリをフォーマットするにはどうすればよいですか?

4

2 に答える 2

1

AU で LEFT OUTER JOIN を試してください。これは、AU にデータがあるかどうかに関係なく、最初のテーブルからすべての行を返します。AU データがない場合、AU フィールドには null が返されます。

SELECT UA.Fname, UA.LName, UA.Title, UA.AccDate, UA.Address1, 
  UA.Address2, UA.City, UA.State, UA.Zip, UA.Email, UA.Phone, 
  LabCaseNum, SpecCaseNum, deadlineDate, CaseDetail, 
  AU.Fname as AuthName, AU.Lname, AU.Phone, AU.Email, AU.Role 
FROM userAccount UA 
INNER JOIN userCase UC ON UA.AccNum = UC.Userlink 
LEFT OUTER JOIN authPerson AU ON UC.CaseNum = AU.UserCase 
WHERE UC.CaseNum = 7903579800;
于 2013-05-08T21:45:00.360 に答える