Mysql 如何从表及其子表中获取结果集?

Mysql 如何从表及其子表中获取结果集?,mysql,Mysql,根据ER模型,有一个表Task,它有8个子表。每个子表根据其类型具有不同的属性,例如任务表如下所示(实际ER模型在任务表中具有更多属性) 它的一个子表是这样的 Task_ID | Version | Begin | End Task_ID | Version | Begin | Duration | Duration_unit 另一个像这样的 Task_ID | Version | Begin | End Task_ID | Version | Begin | Duration | Dur

根据ER模型,有一个表
Task
,它有8个子表。每个子表根据其类型具有不同的属性,例如任务表如下所示(实际ER模型在任务表中具有更多属性)

它的一个子表是这样的

Task_ID | Version | Begin | End
Task_ID | Version | Begin | Duration | Duration_unit
另一个像这样的

Task_ID | Version | Begin | End
Task_ID | Version | Begin | Duration | Duration_unit
假设我们用Begin和End创建了一个新任务,我们执行了2次插入,没有问题。但是如果我想从所有不同的任务类型中获取所有任务,该怎么办?例如,ID=1的任务,
SELECT
语句是什么样子的?我尝试过这样做:

SELECT * FROM TASK,TASK_1,TASK_2,TASK_3,TASK_4,TASK_5,TASK6,TASK_7,TASK_8;

我测试了插入到
TASK
TASK4
中,但每当我尝试选择它时,它都不会显示任何内容,并且放置where会导致一个含糊不清的列错误。我曾考虑加入一个大的
组织,但我不知道这样做是否有效。我还想去掉空值列

不确定空值列是什么意思。但是您可以包含
WHERE
子句,以减少结果集,从而排除列中具有空值的行

select t.*, ct.Begin, ct.End, ct2.Duration, ct2.Duration_unit
from task t
join childTask ct
on t.Task_ID=ct.Task_ID
join childTask2 ct2
on ct2.Task_ID=ct.Task_ID

模糊列错误。3个表具有相同的列名。因此,
SELECT*
需要更加具体,例如我需要在一次选择中获得任务的ID、版本、标题、地点、原因、描述、开始和结束,我尝试了
SELECT ID、版本、标题、地点、原因、描述、开始、结束fromTASK、task_1、task_2、task_3、task_4、task_5、TASK6、task_7、task_8仍然有模糊的错误,你说有8个,但只描述了2个。另一个1会是什么样子?