这是我的项目表
Project Table
JNo Name City
J1 Proj1 London
J2 Proj2 Paris
J3 Proj3 Athens
J4 Proj4 India
这是我的货件表
Shipment
SNo PNo JNo Qty
S1 P1 J1 50
S1 P1 J2 90
S1 P2 J1 40
S1 P3 J3 20
S2 P1 J3 110
S2 P2 J2 30
S2 P4 J3 10
S2 P3 J1 100
S3 P1 J3 80
S3 P4 J2 70
S3 P4 J2 70
S4 P1 J3 20
S4 P2 J1 60
我想要提供最小数量的项目名称。
我试过了。但它只返回最小数量值 这是我的代码
select min(qty) from shipment where jno IN(select jno from project)
答案 0 :(得分:8)
SELECT p.name
FROM Project p, Shipment s
WHERE s.JNo = p.JNo
AND s.Qty in (SELECT MIN(qty) FROM shipment)
答案 1 :(得分:4)
不使用MIN:
SELECT p.Name, s.Qty
FROM `project` p
INNER JOIN `shipment` s ON `p`.`jno` = `s`.`jno`
ORDER BY `s`.`qty` ASC
LIMIT 1
答案 2 :(得分:3)
这应该像你说的那样工作
select p.Name, s.Qty
from Project p, Shipment s
where p.Jno=s.Jno
and s.Qty in(select min(s.Qty) from Shipment s);
将显示Project
表中的项目名称和shipment
表中的最小数量。
答案 3 :(得分:1)
您应该使用的查询是
SELECT project.Name, min(qty) FROM Project
LEFT JOIN Shipment ON project.JNO = Shipment.JNO
我希望这可以帮到你。
答案 4 :(得分:0)
对于发货量最小的项目,请尝试:
select p.name
from project p
join shipment s on p.jno=s.jno
order by s.qty
limit 1
对于总出货量最小的项目,请尝试:
select name from
(select p.name, sum(s.qty) total_shipped
from project p
join shipment s on p.jno=s.jno
group by p.name
order by 2) sq
limit 1