car*_*rlo 2 mysql join group-by limit
我正在尝试对两个表执行选择查询,一个包含例如产品,另一个包含可以为这些产品选择的颜色.
每种产品都有不同数量的颜色可供选择; 有些只有一种颜色,有些可以有20种颜色.
查询的范围是解析包含所有可用颜色的20个产品的列表.这意味着每个产品的颜色数量不必受限制,但显示的产品可以.
我当前的查询如下所示:
SELECT p.*,
c.*
FROM Products AS p
LEFT JOIN Colors AS c ON c.ColorProductID = p.ProductID
GROUP BY p.ProductID
ORDER BY p.ProductID ASC, c.ColorID ASC
LIMIT 0, 20
Run Code Online (Sandbox Code Playgroud)
这个查询的问题在于它确实只从数据库中提取了20个产品,但它每个产品只提取一种可用颜色,而不是每个产品的所有可用颜色.
如何更改我的查询以仅获取20个产品,但每个产品的颜色没有限制?
提前致谢!
SELECT p.*, c.* FROM (select * from Products LIMIT 0,20) AS p
LEFT JOIN Colors AS c ON c.ColorProductID=p.ProductID
ORDER BY p.ProductID ASC, c.ColorID ASC
Run Code Online (Sandbox Code Playgroud)
编辑: 修复查询