假设我在oracle中有四个表:
+--------------------+----------------------+
| PROJECTS | PHASES |
+--------------------+----------------------+
| PROJECT_ID integer | PHASE_ID integer |
| | PROJECT_ID integer |
| | PHASE varchar2(50) |
| | WORKING_HOURS number |
+--------------------+----------------------+
+---------------------+-------------------------+
| TASKS | EMPLOYEES |
+---------------------+-------------------------+
| TASK_ID integer | EMPLOYEE_ID integer |
| PHASE_ID integer | FIRST_NAME varchar2(50) |
| EMPLOYEE_ID integer | LAST_NAME varchar2(50) |
+---------------------+-------------------------+
编辑1。 project.project_id
是主键 phases.phase_id is
主键 tasks.task_id is
主键 employess.employee_id
是主键从其他表到上面的所有其他引用都是外键!
比如说 PHASES.PHASE
可以有值:alpha,beta,olympus,unicorn
我希望它返回一个特定项目的列表,其中包含每个项目阶段的员工以及每个阶段的工作时间。
类似的东西(不完全是一个例子)
+----------------+----------------+----------------+----------------+--+
| alpha | beta | olympus | unicorn | |
+----------------+----------------+----------------+----------------+--+
| name1 surname1 | name2 surname2 | name1 surname1 | name4 surname4 | |
| name2 surname2 | name4 surname4 | name2 surname2 | | |
| name3 surname3 | | name4 surname4 | | |
| name4 surname4 | | | | |
| 15 | 240 | 13 | 300 | |
+----------------+----------------+----------------+----------------+--+
好像想不通。
谢谢你的帮助!
1条答案
按热度按时间bf1o4zei1#
您的表中需要外键。例如,您将需要employees表中的project\u id来知道每个员工当前正在处理哪个项目。或者,在另一个表中Map这样的数据。然后,就是使用写得好的where子句。