mysql - SQL 查询返回列值的实例但返回其他字段

标签 mysql sql select where-clause

我在一张 table 上有很多批处理。这些批处理通常出现一次,但可以重复。我想获取具有最早创建日期(列)的特定产品代码(列)的每个批处理,带回与该批处理相关的其他字段(到期日、仓库等)。

到目前为止,我有以下查询:

SELECT DISTINCT lot_number, prod_code, date_received, expiry_date, quantity 
FROM scheme.stquem  
WHERE prod_code = '001'  
AND lot_number != ''     //removes blanks   
ORDER BY lot_number

如何通过选择收到日期最早的批处理来删除重复项?

最佳答案

使用group byjoin:

SELECT s.lot_number, s.prod_code, s.date_received, s.expiry_date, s.quantity 
FROM scheme.stquem s JOIN
     (SELECT lot_number, min(date_received) as mindr
      FROM scheme.stquem
      WHERE prod_code = '001' AND lot_number <> ''     //removes blanks   
      GROUP BY lot_number
     ) sl
     ON sl.lot_number = s.lot_number and sl.mindr = s.date_received 
WHERE prod_code = '001'
ORDER BY s.lot_number;

关于mysql - SQL 查询返回列值的实例但返回其他字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30504390/

相关文章:

php - 在 php 脚本中使用缓存

php和mysql命中计数器,只计数一次

javascript - 从文本值获取选择选项的索引

android - 高亮文本功能,例如 google play book

MySQL 行编号没有得到想要的结果

php - 如何从包含文件导入 mysqli 连接?

mysql - Rails 应用程序的最佳表关系

MySQL 整数比较忽略尾随字母字符

mysql - Django AutoField 默认值错误

php - 我如何使用php计算特定字段的多行mysql