我选择了

SELECT e.*, b.f1, b.fee FROM eq e JOIN br b ON e.country = b.country
WHERE e.name= 'some' AND b.fee = 1

我需要重写选择一个替换AND b.fee = 1AND b.fee = min fee from b
我不能……我可以AND b.fee = (SELECT MIN(fee)FROM br)但这不是个好办法

最佳答案

如果您只想要一行,那么只需使用limit

SELECT e.*, b.f1, b.fee
FROM eq e JOIN
     br b
     ON e.country = b.country
WHERE e.name = 'some'
ORDER BY b.fee
LIMIT 1;

如果希望所有行都具有最小的可用空间,则以下是一种方法:
SELECT e.*, b.f1, b.fee
FROM eq e JOIN
     (SELECT b.*, MIN(fee) OVER () as minfee
      FROM br b
     ) b
     ON e.country = b.country
WHERE e.name = 'some' AND b.fee = minfee;

关于sql - 从tbl中选择,其中tbl.field是min,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44307096/

10-08 22:05