在 MySql 数据库中,我必须进行一些棘手的查询。我必须只在两列中得到结果(类型(项目、支持、教育)和价值(例如 60 和 40))
我有包含类型的静态表:
T1
ID TYPE
1 PROJECT
2 PROJECT
3 PROJECT
4 SUPPORT
5 EDUCATION
我有静态表 T2,其中包含具有某些类型值的所有任务:
T2
TASK T1ID
1 1
2 1
3 2
4 3
5 4
6 5
T3 是带有一些 IDS 的已创建任务的动态表。
T3
ID
1
2
3
4
5
6
T4 表包含谁创建了这些任务的信息。
T4
T3ID Name
1 Bob Marley
2 Bob Marley
3 Bob Marley
4 Bob Marley
5 Tom Cruise
6 Bob Marley
最后 T5 包含来自 T2 和 T3 的信息
T5
TASK T3ID
1 1
2 2
3 3
5 4
1 5
5 6
对于某些特定的人(总是一个人——在这个例子中是 Bob Marley 或 Tom Cruise),我必须以百分比统计他们在项目、支持或教育方面工作了多少。
所以我会选择 Bob Marley——他的 T3ID 是 1、2、3、4 和 6。
在表 5 中,他的任务 ID 是 1、2、3、5 和 5。
因此,当我查看表 T2 时,他的 T1 ID 是 1、1、2、4 和 4。这意味着 Bob Marley 从事 3 个项目和 2 个支持任务。
所以当我选择 Bob Marley 时,结果应该是:
PROJECT 60
SUPPORT 40
这是查询的最终结果。我怎样才能做到这一点?我知道它必须是几个 JOIN 语句,当然你可以在 WHERE 子句中使用
where name='Bob Marley'
如果我把
`where name=Tom Cruise
结果应该是
PROJECT 100`
谢谢