嗨,我一直在尋找這個,我已經找到了其他示例代碼的解決方案,但我無法弄清楚如何執行我的。MYSQL組與最小值
SELECT `gameDBGames`, `game_id`, MIN(`gamePrice`) AS `gamePrice`
FROM `games`
LEFT JOIN `platforms` ON `gamePlatform` = `platform_id`
LEFT JOIN `bundles` ON `gameBundle` = `bundle_id`
LEFT JOIN `currency` ON `bundleCurrency` = `currency_id`
WHERE `bundleEnd` > CURDATE() AND `bundleType` = "1" AND `gameDBGames` != "0"
GROUP BY `gameDBGames`
這是我的實際查詢。這將返回最低價格,但不對應於game_id
。我怎麼能這樣做?我相信是這樣做的內部連接:
SELECT `gameDBGames`, `game_id`, MIN(`gamePrice`) AS `gamePrice`
FROM `games`
LEFT JOIN `platforms` ON `gamePlatform` = `platform_id`
LEFT JOIN `bundles` ON `gameBundle` = `bundle_id`
INNER JOIN (....)
LEFT JOIN `currency` ON `bundleCurrency` = `currency_id`
WHERE b.`bundleEnd` > CURRDATE() AND b.`bundleType` = "1" AND g.`gameDBGames` != "0"
謝謝。
編輯:對不起,我不知道我在想什麼,不張貼表結構。
game_id是唯一的ID(例如,相同的遊戲,但具有不同的價格),並且gameDBGames是遊戲的ID(例如,gameDBGames = 1,可以具有價格40或30),這就是爲什麼我是由gameDBGames分組的原因。目標是以最低價格獲得獨特的遊戲DB遊戲。
我有。
+--------------+---------+----+---------+
| table games | | | |
+--------------+---------+----+---------+
| game_id | int | AI | PRIMARY |
| gameDBGames | int | | |
| gamePrice | float | | |
| gamePlatform | tinyint | | |
| gameBundle | int | | |
+--------------+---------+----+---------+
+---------+-------------+-----------+--------------+------------+
| game_id | gameDBGames | gamePrice | gamePlatform | gameBundle |
+---------+-------------+-----------+--------------+------------+
| 1 | 1 | 20 | 1 | 1 |
| 2 | 2 | 20 | 2 | 1 |
| 3 | 2 | 15 | 2 | 1 |
| 4 | 3 | 17 | 1 | 1 |
| 5 | 3 | 20 | 1 | 1 |
| 6 | 3 | 15 | 1 | 1 |
| 7 | 4 | 16 | 2 | 2 |
| 8 | 5 | 18 | 2 | 2 |
| 9 | 5 | 14 | 2 | 2 |
| 10 | 6 | 15 | 1 | 2 |
+---------+-------------+-----------+--------------+------------+
我得到了什麼。
+---------+-------------+-----------+--------------+------------+
| game_id | gameDBGames | gamePrice | gamePlatform | gameBundle |
+---------+-------------+-----------+--------------+------------+
| 1 | 1 | 20 | 1 | 1 |
| 2 | 2 | 15 | 2 | 1 |
| 4 | 3 | 15 | 1 | 1 |
| 7 | 4 | 16 | 2 | 2 |
| 8 | 5 | 14 | 2 | 2 |
| 10 | 6 | 15 | 1 | 2 |
+---------+-------------+-----------+--------------+------------+
正如你所看到的,game_id不對應於gamePrice。它應該是這樣的。
+---------+-------------+-----------+--------------+------------+
| game_id | gameDBGames | gamePrice | gamePlatform | gameBundle |
+---------+-------------+-----------+--------------+------------+
| 1 | 1 | 20 | 1 | 1 |
| 3 | 2 | 15 | 2 | 1 |
| 6 | 3 | 15 | 1 | 1 |
| 7 | 4 | 16 | 2 | 2 |
| 9 | 5 | 14 | 2 | 2 |
| 10 | 6 | 15 | 1 | 2 |
+---------+-------------+-----------+--------------+------------+
希望你現在明白,對不起之前沒有更多解釋。如果你需要別的東西,請問。謝謝。
編輯2(馬克) 馬克解決方案給我這個錯誤。
- 還有gameDBGames重複。
- 有些遊戲未顯示。
我更新了WHERE子句以防萬一需要。
你能告訴我們表結構嗎?什麼表列:'gameDBGames','game_id','gamePrice'屬於? –
你究竟想要選擇什麼?所有遊戲,每個遊戲的價格最低?哪款遊戲的價格最低?所有gameDBGames(這代表什麼?)價值與每個最低價格的遊戲?還有別的嗎? –
在發佈此類問題之前,請考慮顯示錶格結構。 :) –