Select 使用 SQL for php 的多个记录中的顶部(0 和 1)

Select the top (of 0's and 1's) from multiple records using SQL for php

清单 table 用于说明是否已收集物品。

非常简单的结构,有四个字段 Code、Object、User、Got。

最多可容纳 8 个用户。

示例:-

Code    Object      User    Caught
id01    Cheese      JS      1
id01    Cheese      DF      1
id01    Cheese      AB      0
id02    Bread       JS      0
id02    Bread       DF      0
id02    Bread       AB      0
id03    Milk        JS      0
id03    Milk        DF      1
id03    Milk        AB      0

...等等。

我知道关系数据库会更好。

我正在使用代码:-

SELECT Code, Caught, Max(Caught) FROM Checklist GROUP BY Code 

但它 return 不正确。我需要它为任何用户检查过的每个项目只获取一条记录。

因此所需的代码将 return:-

Code    Object    Caught
id01    Cheese    1
id02    Bread     0
id03    Milk      1

希望的最终结果是放入 php 脚本并显示列表中至少有人检查过的所有项目。

你试过了吗:

SELECT DISTINCT Code, Caught, Max(Caught) FROM Checklist

只需要稍微改变一下你的SELECTGROUP BY

SELECT Code,Object, Max(Caught) AS Caught
FROM Table1 
GROUP BY Code,Object 

演示:SQL Fiddle

由于您选择了 CaughtMAX,因此您从 SELECT 列表中排除了 Caught,并且您希望 Object 在您的 GROUP BY 因为它是 SELECT 列表中的非聚合字段。