我有一個產品表,它有一個product_id, 而我有其他表有它像一個組。 比方說:Mysql Multi Group通過
Product table(product):
ID NAME
1 - Shoes
2 - T-shirt
3 - apple
4 - any thing
5 - lorem ipsum
_______________________________________________
Group product table(g_product):
ID - GROUP ID - PRODUCT ID
1 1 1
2 1 2
3 1 5
我需要一個查詢,以從各組獲得1個產品。 我已經試過這樣:
select * from product as p
left join g_product as g on p.id = g.fk_prod
group by group_id
但是,這帶給我只是分組的產品。
我wan't這個結果:
1 - Shoes
3 - apple
4 - any thing
這是從組1中的產品1,3和4沒有基。
我想,這與此查詢工作:
select * from product as p
left join g_product as g on p.id = g.fk_prod
group by g.group_id
union
select * from product as p
left join g_product as g on p.id != g.fk_prod
group by p.id
但是這需要30秒的運行,這是很多。我知道有一種方法可以快速做到這一點。但我不明白
爲什麼'Shoes'而不是'T-Shirt'在你的樣品輸出? –
Becouse鞋是第一個來自分組產品的產品,我只需要其中一個產品,當我通過group_id對產品進行分組時,它會帶來第一個權利?可以是任何一個。 – Guerra
因此,基本上,您想要從每個組中獲得一個產品,以及不屬於任何組的所有產品? – Zagor23