我有幾個表加入MySQL - 一個有很多其他人。 嘗試從其中一個項目中選擇項目,按另一個表格中的最小值排序。錯誤的組合和按合併順序
不進行分組中好像是這樣的:
代碼:
select `catalog_products`.id
, `catalog_products`.alias
, `tmpKits`.`minPrice`
from `catalog_products`
left join `product_kits` on `product_kits`.`product_id` = `catalog_products`.`id`
left join (
SELECT MIN(new_price) AS minPrice, id FROM product_kits GROUP BY id
) AS tmpKits on `tmpKits`.`id` = `product_kits`.`id`
where `category_id` in ('62')
order by product_kits.new_price ASC
結果:
但磨片n個I通過添加組,我得到這個:
代碼:
select `catalog_products`.id
, `catalog_products`.alias
, `tmpKits`.`minPrice`
from `catalog_products`
left join `product_kits` on `product_kits`.`product_id` = `catalog_products`.`id`
left join (
SELECT MIN(new_price) AS minPrice, id FROM product_kits GROUP BY id
) AS tmpKits on `tmpKits`.`id` = `product_kits`.`id`
where `category_id` in ('62')
group by `catalog_products`.`id`
order by product_kits.new_price ASC
結果:
而這是不正確的排序!
不知何故,當我分組這個結果,我得到ID 280之前!
但我需要得到:
281 | 1600.00
280 | 2340.00
因此,分組休息現有訂貨!
我需要他們按最低價格排序。並對它們進行排序。 但集團正在打破這種排序。 – violarium
group by catalog_products.id'將只返回每個id的一行,如果你想要顯示所有的行,那麼不要使用group by catalog_products.id,product_kits.new_price' –
如果你喜歡,考慮遵循以下簡單的兩步操作步驟:1.如果您尚未這樣做,請提供適當的DDL(和/或sqlfiddle),以便我們可以更輕鬆地複製問題。 2.如果您尚未這樣做,請提供與步驟1中提供的信息相對應的所需結果集。 – Strawberry