刚学sql,请帮忙看一下,查询这两个表中plan唯一,每一个plan中,amount最少的,plannum大于prixis的记录

两个表情况
表名:wu_plan
ID plan model corp_code plannum prixis
1 00001 exx22 nokia 2000 0
2 00002 lc001 sony 3000 0

表名:wu_bom
ID plan pact amount
1 00001 aa1 300
2 00001 aa2 200
3 00002 bb1 500
4 00002 bb2 800
5 00002 bb3 400

查询这两个表中plan唯一,每一个plan中,amount最少的,plannum大于prixis的记录
结果是:
ID plan model corp_code plannum prixis pact amount
1 00001 exx22 nokia 2000 0 a2 200
2 00002 lc001 sony 3000 0 bb3 400

我用了3表链接的方法,请问有没有更好的方法
select a.*,b.pact,b.amount
from wu_plan a
join wu_bom b
on b.pla =a.PLA
join (select pla ,min(amount) as minamount from wu_bom group by pla) c
on b.pla =c.pla and b.amount =c.minamount
order by a.pla

sql

2个回答

SELECT
a.*,
T.amount
FROM
wu_plan a
LEFT JOIN ( SELECT plan, MIN( b.amount ) AS amount FROM wu_bom b GROUP BY plan ) T ON a.plan = t.plan

![图片说明](https://img-ask.csdn.net/upload/201909/17/1568703854_545257.png)
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问