mysql - 如何从多个表中获取值(value),但值(value)应该是最小的和分组的

标签 mysql

如何从多个表中获取最小值和分组值

喜欢: 我有三张 table

          Table1                              Table3        
|   ID  |   GPN |   PKGID   |           |   GPN |   Amt |
|   1   |   A   |   PKG01   |           |   A   |   10  |
|   2   |   B   |   PKG02   |           |   A   |   15  |
|   3   |   C   |   PKG03   |           |   A   |   20  |
|   4   |   D   |   PKG04   |           |   A   |   25  |
                                        |   A   |   65  |
                                        |   A   |   30  |
-----------------------------           |   B   |   17  |
                                        |   D   |   90  |
                                        |   B   |   20  |
         Table2                         |   B   |   40  |
|   GPN |   Date        |               |   D   |   60  |
|   A   |   2016-09-10  |               |   B   |   80  |
|   A   |   2016-09-18  |               |   B   |   100 |
|   B   |   2016-09-10  |               |   C   |   3   |
|   B   |   2016-09-11  |               |   C   |   6   |
|   B   |   2016-09-12  |               |   C   |   9   |
|   C   |   2016-10-12  |               |   C   |   12  |
|   C   |   2016-10-13  |               |   C   |   15  |
|   C   |   2016-10-14  |               |   D   |   7   |
|   D   |   2016-09-10  |               |   D   |   10  |
|   D   |   2016-10-13  |               |   D   |   13  |

我必须从三个表中获取值,所以我该怎么做。

例如

日期 = 2016-09-10

我必须代表它获得值(value) 所以结果应该包含所有组的最小值。

结果

|   ID  |   PKGID   |   GPN |       Amt |   Date        |
|   1   |   PKG01   |   A   |       10  |   2016-09-10  |
|   2   |   PKG02   |   B   |       17  |   2016-09-10  |
|   4   |   PKG04   |   D   |       7   |   2016-09-10  |

最佳答案

应该是这样

select table.id, table1.PKGID, table1.GPN, min(table3.Amt), table2.`date`
from table1 
inner join table3 on table1.GPN= table3.GPN
inner join table2 on table1.GPN= table2.GPN
where date(table2.date )  = str_to_date('2016-09-10', '%Y-%m-%d') 
group by table1.GPN, table.id, table1.PKGID, table2.`date`

关于mysql - 如何从多个表中获取值(value),但值(value)应该是最小的和分组的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38708297/

相关文章:

php - 动态添加到购物车

mysql - 尝试连接到 Mysql 数据库时找不到类 com.mysql.jdbc.Driver jdbc

mysql - 使用 Now() 作为 MySql DateTime 类型的默认值

php - 我的代码对 SQL 注入(inject)有多脆弱?

python - 无法使用 python 2.7 在 Mysql 中插入类型文本

mysql - Django docker 容器无法连接到 mysql 容器,错误为 "Can' t 连接到 'db' (111) 上的 MySQL 服务器"

php - 当我在 phpmyadmin 中打开一个字段时,mySQL 数据库发生了变化,但我没有做任何改变

android - 如何在android中将整数保存到sql数据库?

php - 选择php中的代码到android

php - 查询匹配多个关键字并显示结果?