私は、タスク、ユニット、および建物の 3 つのテーブルを結合する作業を行っています。
タスク テーブルには、ユニットの列と建物の列があります。
単一のタスクは、建物またはユニットのみに割り当てられ、両方には割り当てられません。したがって、すべてのレコードの 1 つの列は常に null です。タスク テーブルには 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 行を取得するにはクエリが必要です。どんな助けでも大歓迎です。