2列の主キーを持つ特定のテーブルでのGROUPBYクエリに問題があります。
私のテーブルは次のようになります。
CREATE TABLE IF NOT EXISTS `stocks` (
`id_city` int(10) NOT NULL,
`id_prod` int(10) NOT NULL,
`sell_price` int(10) DEFAULT '0',
PRIMARY KEY (`id_city`,`id_prod`)
)
そのような値が挿入されているとしましょう:
INSERT INTO `stocks` (`id_city`, `id_prod`, `sell_price`)
VALUES ('1', '1', '100'), ('2', '1', '90'), ('3', '1', '10');
そのようなクエリの後:
SELECT id_prod, id_city, MIN(sell_price)
FROM stocks
GROUP BY id_prod
結果の行は「id_city」キーを失います-これはcity_idの最初の出現を取ります、
id_prod id_city MIN(sell_price)
1 1 10
この場合の適切なクエリを作成するにはどうすればよいですか?結果は次のようになります。
id_prod id_city MIN(sell_price)
1 3 10