我有 3 张桌子。(例如,最初使用了数字,我使用了一些短名称)
- 表 1 为 1
- 表 2 为 2
- 表 3 为 3
block_id 是所有三个表的连接属性
笔记:
- block_id是唯一的,block_status存在于table1中
- 表 2 中存在重复的 block_id、thickness_id、no_of_slabs
- 表 3 中存在重复的 block_id、sub_block_id、p_status
我想显示 block_id、slab 总数、p_status 为各个 block_id 的其中 status='cut'
- 我们可以通过block_id从表中获取slab的总数
- 如果所有 sub_block_id 的状态都已完成,则 z_status=fullyCompleted 否则部分完成。
我已经尝试了以下查询,但它不起作用,
select 1.block_id,sum(2.noofslabs) as totalslabs,if(3.status='completed','fullyCompleted','partiallyCompleted') from table1 as 1
left join table2 as 2 on 1.block_id=2.block_id
left join table3 as 3 on 1.block_id=3.block_id where 1.status='Cut'
如果我不添加table3,totalslabs的结果是正确的,如果我添加join table3,结果是错误的。另一件事是如何让 z_status 部分完成或完全完成