仅选择差值大于0的值(无负数和0)

Sam*_*Sam 1 mysql sql database

我在mysql db table中有两列投票:接受拒绝

我想只查询接受拒绝列值后的最高结果

table : votes
=================
 accept | reject
=================
   7    |   9
   5    |   1
   2    |   15
   5    |   1
Run Code Online (Sandbox Code Playgroud)

我想只是正和顶部的值,这里5 - 1 = 4 其实,我已经很多其他列的沿接受并reject..i只想ORDER由顶值的结果差(只有正)LIMIT它到1,这样我就可以得到我想要的那一排......我清楚了吗?:)怎么写这个查询?谢谢..

OMG*_*ies 6

使用:

   SELECT t.accept,
          t.reject,
          t.accept - t.reject AS difference
    FROM VOTES t
   WHERE t.accept - t.reject > 0
ORDER BY difference DESC
   LIMIT 1
Run Code Online (Sandbox Code Playgroud)

使用子查询替代:

SELECT v.accept,
       v.reject
  FROM VOTES v
 WHERE v.accept - v.reject > 0
  JOIN (SELECT MAX(t.accept - t.reject) AS difference
          FROM VOTES t
         WHERE t.accept - t.reject > 0) x ON x.difference = (v.accept - v.reject)
Run Code Online (Sandbox Code Playgroud)