View the exhibit and examine the data in the PROJ_TASK_DETAILS table. (Choose the best answer.)
The PROJ_TASK_DETAILS table stores information about project tasks and the relation between them.
The BASED_ON column indicates dependencies between tasks.
Some tasks do not depend on the completion of other tasks.
You must generate a report listing all task IDs, the task ID of any task upon which it depends and the name of the employee in charge of the task upon which it depends.
Which query would give the required result?
A. SELECT p.task_id, p.based_on, d.task_in_charge
FROM proj_task_details p JOIN proj_task_details d
ON (p.task_id = d.task_id);
B. SELECT p.task_id, p.based_on, d.task_in_charge
FROM proj_task_details p FULL OUTER JOIN proj_task_details d
ON (p.based_on = d.task_id);
C. SELECT p.task_id, p.based_on, d.task_in_charge
FROM proj_task_details p JOIN proj_task_details d
ON (p.based_on = d.task_id);
D. SELECT p.task_id, p.based_on, d.task_in_charge
FROM proj_task_details p LEFT OUTER JOIN proj_task_details d
ON (p.based_on = d.task_id);
Answer: D
ExplanationExplanation/Reference:
题目意思是:您必须生成一个报告,列出所有任务ID,它所依赖的任何任务的任务ID以及负责其所依赖任务的员工的姓名。
先看正确的D选项。用了左外连接。。
某选项里 (p.task_id = d.task_id); 这个显然不符合题目要求。。
还有一个选项里用了全连接。。结果如下。也不符合要求。
还有一个选项 是join连接,结果如下。。部分task_id 被过滤了。