我在收銀臺上有一張桌子,客戶可以在那里買東西。在我們的環境中經常發生一位客戶購買相同的文章。例子:
| 客戶 ID | 日期 | 文章_id | 數字 |
|---|---|---|---|
| 5 | 12月10日 | 3 | 1 |
| 7 | 12月12日 | 3 | 1 |
| 5 | 12月12日 | 3 | 2 |
現在我想要一個這樣的串列(因為客戶 5 總共購買了產品 3 3 次):
| 客戶 ID | 文章_id | 數字 |
|---|---|---|
| 5 | 3 | 3 |
此外,我需要知道產品 3 是什么,因此從表文章設定了一個連接結構。
還有一個 where 子句,因為我只想要某個日期之后的銷售額。
所有這些都很好用,但是當我將它們全部加在一起時,什么也沒有發生。幫助?:)
我懂了:
$sqlgegevens = "SELECT SUM(number) AS SumPerArticleProduct,
articleid,
price,
number,
client,
salesdate
FROM Sales
INNER JOIN Articles ON Sales.articleid= Articles.Articleid
WHERE salesdate > '$date1'
GROUP BY client, articleid
";
uj5u.com熱心網友回復:
您GROUP BY通過選擇number聚合SUM(number)和單數number形式的-field來打破 -子句。
$sqlgegevens = "
SELECT SUM(number) AS SumPerArticleProduct,
articleid, price, client, salesdate
FROM Sales
INNER JOIN Articles
ON Sales.articleid= Articles.Articleid
WHERE salesdate > '$date1'
GROUP BY client, articleid
";
此外,不直接關系到你的問題,但你真的不應該直接在SQL查詢中(尤其是沒有如果的價值來自于userinput,這甚至有可能在這里)使用變數:WHERE salesdate > '$date1'。我還沒有看到您的查詢陳述句,但此時您的頁面可能存在安全漏洞。
有關查詢資料庫的更好/更安全的方法,請參見此處 PHP 手冊中的示例 #2。
uj5u.com熱心網友回復:
好的,除了@Raxi 的雙重選擇之外,我還需要將表格添加到“分組依據”條款中。它應該是 Sales.clientid 和 Sales.articleid。現在它起作用了!
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/384920.html
標籤:php mysql 加入 通过...分组 where子句
下一篇:根據一個表中的唯一ID連接多個表
