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
只需要稍微改变一下你的SELECT
和GROUP BY
:
SELECT Code,Object, Max(Caught) AS Caught
FROM Table1
GROUP BY Code,Object
演示:SQL Fiddle
由于您选择了 Caught
的 MAX
,因此您从 SELECT
列表中排除了 Caught
,并且您希望 Object
在您的 GROUP BY
因为它是 SELECT
列表中的非聚合字段。
清单 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
只需要稍微改变一下你的SELECT
和GROUP BY
:
SELECT Code,Object, Max(Caught) AS Caught
FROM Table1
GROUP BY Code,Object
演示:SQL Fiddle
由于您选择了 Caught
的 MAX
,因此您从 SELECT
列表中排除了 Caught
,并且您希望 Object
在您的 GROUP BY
因为它是 SELECT
列表中的非聚合字段。