這個查詢得到所有與會者的名字和他們的教練的名字都「SQL」課程。 你有一個至少有3個表的數據庫:員工,產品和註冊。 員工可以註冊一門課程,培訓師也可以是員工。要註冊產品,您必須提供課程名稱和該課程的開始日期。
employees t join offerings o on (o.trainer = t.empno)
這裏的員工與使用培訓師nr和員工編號的課程產品相關。爲了說明這一點,我們只對那些培訓師的員工感興趣,別名「t」用於Employee表。 「o」是Offerings表的別名。這次加入爲我們提供了培訓師所知道的所有課程,並且是一名員工。
join registrations r using (course, begindate)
在這裏,註冊與使用課程名稱和課程錄取通知書提供的課程有關。上一行等於:
join registrations r on o.course = r.course AND o.begindate = r.begindate
join employees a on (r.attendee = a.empno)
此處的員工與註冊使用與會者nr和員工編號有關。爲了清楚說明,我們只對那些參加課程的員工感興趣,別名「a」用於Employee表。
where course = 'SQL';
到現在爲止,我們擁有所有的教練,員工醚:課程他們訓練的註冊和他們的參加人員empleyees一長串。在那個長列表中,我們只對那些課程名稱等於「SQL」的行感興趣。
來源
2012-03-31 20:26:58
Wim
我在找的一種解釋。謝謝。 – Abhinav 2012-04-03 04:39:35