• Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

JPQL Question with Left Join

 
Treimin Clark
Ranch Hand
Posts: 757
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Question Number 43 of the Diagnostic Exam of WhizLabs preparation kit.

SELECT d
FROM Dept d LEFT JOIN FETCH d.employees
WHERE d.department_no = 1


[A] From the above query only employees of department no 1 will be retrieved.
[B] From the above query those departments will be retrieved which has employee and have department_no not equals to 1.
[C] This will retrieve all the departments, which has department_no equals to 1. It will also retrieve the associated employees with the set of departments.
[D] This is an invalid query.


According to the WhizLabs, the correct answer is C.
Can someone tell me why the answer B is wrong?


 
Raf Szczypiorski
Ranch Hand
Posts: 383
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
First of all because option B says that the departments retrieved will not have id = 1, but the where clause asks for 1. Second, it retrieves the department either if it has any employee, or if it has no employees - it is a left outer join.
 
Treimin Clark
Ranch Hand
Posts: 757
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Oh! Thanks Raf.
 
Niranjan Deshpande
Ranch Hand
Posts: 1277
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
So as per this link can we say that the Department is the LEFT entity (table) and Employees is the RIGHT entity (table).
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic