假设我在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
我希望它返回一个特定project_id(比方说project_id=1)的列表,其中包含项目每个阶段的员工以及每个阶段的工作时间。
类似这样的东西(不完全是一个例子)
+----------------+----------------+----------------+----------------+--+
| 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 | |
+----------------+----------------+----------------+----------------+--+似乎找不到答案。
谢谢你的帮助!
发布于 2020-06-05 14:27:02
您需要在表中使用外键。例如,您需要在employees表中有一个project_id,以了解每个员工当前正在处理的项目。或者,像这样映射数据的另一个表。然后,这是一个使用好写好where子句的问题。
https://stackoverflow.com/questions/62199869
复制相似问题