获取表中的所有记录

Posted

技术标签:

【中文标题】获取表中的所有记录【英文标题】:getting all the records in the table 【发布时间】:2013-03-01 00:29:30 【问题描述】:

我想检索所有“金额”大于等于1500的记录。问题是即使“金额”小于1500也会显示在页面中。

customers table
id   name
1    sample
2    sample2
3    sample3


payments table

p_id  amount  id(foreign key)
1      800     2
2      800     2
3      1500    1
4      1200    3

应该检索客户 1 和 2,因为金额>= 1500。

谢谢你, 米克:)

【问题讨论】:

问题是什么? 返回金额 >= 1500 的所有客户 @Mick Austre - 每笔单独付款 >= 1500 或客户总计 >= 1500? 【参考方案1】:

这需要加入表格。使用GROUP BY 是因为其中一列正在使用SUM() 进行聚合,而HAVING 子句用于过滤聚合结果。

SELECT  a.ID, a.name
FROM    customers a
        INNER JOIN payments b
            ON a.ID = b.id
GROUP   BY a.ID, a.name
HAVING  SUM(b.amount) >= 1500
SQLFiddle Demo

【讨论】:

以上是关于获取表中的所有记录的主要内容,如果未能解决你的问题,请参考以下文章

如何从PHP中的URL获取多个同名参数并将所有记录插入表中

SQL左连接不包括左表中的所有记录

从重复元素及其子元素\属性中获取一张表中的多条XML记录

如何获取一个MySql表中存在的记录而不是另一个[重复]

SQL 表中记录的唯一组合(从节点表中获取边)

SQL从日期范围内的同一表中的不同记录中获取多个项目的总和(ORACLE)