sql查询获取前置条件的数据

时间:2017-06-25 13:32:40

标签: sql

我需要水果清单,每种水果的价格高于表A。

ID   |  fruit | Price
----------------------------
   1 |  apple |   10  
   2 |  banana|   7  
   3 |  grapes|   6  

然后我有如下表所示的每日表

ID   |  fruit | Price
----------------------------
   1 |  apple |   9   
   2 |  banana|   5  
   3 |  grapes|   9  
   4 |  mango |   15   

在这种情况下我只得到葡萄

2 个答案:

答案 0 :(得分:2)

我认为您可以加入水果daily上的tableAID表格,然后比较价格。

SELECT t1.*
FROM daily t1
INNER JOIN tableA t2
    ON t1.ID = t2.ID
WHERE t1.price > t2.price

请注意,我们加入ID而不是水果名称,因为从理论上讲,名称在非常大的水果表中可能并不完全独特。

答案 1 :(得分:0)

只需加入ID并添加您的附加条件(price中的tableA大于price中的dailyTable。 您不需要按列fruit加入 - 但如果是,则不会更改结果集。

SELECT TableA.*, dailyTable.Price
  FROM TableA
 INNER JOIN dailyTable
    ON TableA.ID = dailyTable.ID
   AND TableA.Price > dailyTable.Price

fruit是冗余数据。所以你不应该把它存储在日常表中。