我的任务是加入 3 个表:Task、Unit 和 Building。
任务表有一个单元列和一个建筑物列。
任何单个任务都只分配给一个建筑物或一个单元,绝不会同时分配给两者。因此,每条记录中的一列始终为空。任务表中有 6100 条记录。
当我使用这个 JOIN 时:
select * from task t
join building b on b.id = t.building_id;
我得到 628 行。这是正确的构建任务总数。
当我使用这个 JOIN
select * from active_task at
inner join unit_template ut on ut.id = at.unit_template_id
我得到 5472 行。这是正确的单元任务数。如果我将它们加起来 5472+628 =6100 这是任务表中正确的行数。
当我运行此查询时:
select * from task t
inner join unit ut on ut.id = t.unit_id
inner join building bt on bt.id = t.building_id
我得到零行。我需要我的查询来检索 6100 行。任何帮助,将不胜感激。