1

私は3つのテーブルを持っています

従業員empIdintpk empname varchar

Customersite empid int pk fk custid int pk fk startdate date pk enddate date

employeeassignment custid int pk sitename varchar

私の質問は

今日顧客サイトにいる人のサイト名ですべての従業員の名前を表示する方法。現在お客様のサイトにアクセスしていない場合は、名前を表示し、サイト名に「N/A」を表示してください。

私はこれまでに持っています

SELECT
e.EmpName,
cs.SiteName
FROM
EmployeeAssignment ea
INNER JOIN
Employee e
ON
e.EmpId = ea.EmpId
INNER JOIN
CustomerSite cs
ON
cs.CustId = ea.CustId

これは、今日仕事をしているすべての従業員に、名前とサイトを教えてくれます。

どんな助けでもあなたは非常に感謝されます

4

1 に答える 1

1

内部結合の代わりに外部結合を使用する必要があります。

SELECT e.EmpName, IFNULL(cs.SiteName, 'N/A') AS SiteName
FROM Employee e 
LEFT JOIN EmployeeAssignment ea ON e.EmpId = ea.EmpId 
LEFT JOIN CustomerSite cs ON cs.CustId = ea.CustId 

日付を制限するなど、他の条件を追加することもできます。

于 2012-07-16T11:27:34.283 に答える