簡體   English   中英

使用SQL for php從多個記錄中選擇頂部(0和1的頂部)

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

存在一個檢查表,用於說明是否已收集項目。

具有四個字段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 

但是它不能正確返回。 我需要它為任何用戶檢查過的每個項目僅獲取一個記錄。

因此所需的代碼將返回:

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

理想的最終結果將是放入php腳本,並顯示列表中至少有人檢查過的所有項目。

只需稍微更改您的SELECTGROUP BY

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

演示: SQL Fiddle

由於您采用的是CaughtMAX ,因此將Caught排除在SELECT列表之外,並且由於它是SELECT列表中的非聚合字段,因此您希望GROUP BY Object

你有沒有嘗試過:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM