php - 使用 sql 按家庭返回行

标签 php mysql sql duplicates

这是我在 stackoverflow 中的第一个问题,所以请对我好一点:)

我有一个包含列族的表,当我进行查询(使用 where 语句)时,我想将结果显示为具有相同列族的一组行

例如表是商店:

+----+--------+-------+
| id | family | money |
+----+--------+-------+
|  1 |      1 |   100 |
|  2 |      1 |    70 |
|  3 |      2 |    10 |
|  4 |      2 |    20 |
|  5 |      3 |    50 |
+----+--------+-------+

所以我想在执行这样的查询时:

SELECT * FROM shop where money=100 --(adding to the query of course what's needed)

它将选择这两个:

+-----+----------+---------+
| id  |  family  |  money  |
+-----+----------+---------+
| 1   |       1  |    100  |
| 2   |       1  |     70  |
+-----+----------+---------+

最佳答案

您可以使用inexists:

SELECT s.*
FROM shop 
WHERE s.family IN (SELECT s2.family FROM shop s2 WHERE s2.money = 100);

关于php - 使用 sql 按家庭返回行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53502616/

相关文章:

c# - 根据xml文件中的属性查询删除sql表行c#

mysql - 包含 "The "的字符串的文本操作

sql - 查询优化

php - 如何确保数据库中的产品 ID 不被篡改

php - php抽象方法中的动态参数

php - 检查一个键是否存在并从PHP中的数组中获取相应的值

mysql - 从 GEO 坐标确定国家/地区 ISO 代码

php - Mysql Error 1071 指定的Key值太长

sql - Pgsql删除某些列(不是全部)重复的行

mysql - 获取 NonUniqueDiscoveredSqlAliasException