Mysql groupBy基于关系的类似产品(如果有)

Mysql groupBy基于关系的类似产品(如果有),mysql,group-by,junction-table,Mysql,Group By,Junction Table,如何按产品分组\u id查询交易,但我需要单独显示带有选项的产品 例如,在表事务中如果我有: ProductID Quantity Price 1 1 10 1 1 10 1 1 15 (in transaction_options this has option green(price 2,5),yellow(price 2,5)) 1 1 15 (in trans

如何按产品分组\u id查询
交易
,但我需要单独显示带有选项的产品

例如,在表
事务中
如果我有:

ProductID Quantity Price

    1       1       10
    1       1       10
    1       1       15 (in transaction_options this has option green(price 2,5),yellow(price 2,5))
    1       1       15 (in transaction_options this has option red(price 2,5),blue(price 2,5))
我希望结果是:

 ProductID Quantity Price
    1       2       10
    1       1       15 (this has option red(price 2,5),blue(price 2,5))
    1       1       15 (this has option green(price 2,5),yellow(price 2,5))
问题是它们都有相同的产品id,价格可能相同,但选项不同

以下是表格结构:

产品
带有
标识、名称、价格

选项
带有
id、名称、价格

交易
带有
标识、产品标识、数量、价格

transaction\u options
带有
id、transaction\u id、option\u id
交易
选项之间的关联表

交易
中,我插入基于选项计算的
价格
(如果有):


product.price+[选项.价格]=交易。价格

因此,一个产品可以有一个底价和4个期权价格?期权价格总是相同的?并且在交易中只有1个数量?我认为您需要添加更多的细节,包括产品和期权的样本数据作为起点。期权可以是无限的,期权价格不受限制他是一样的。我的例子中的期权价格是一样的,表明我不能
groupBy
price,因为可能有不同的期权。我不相信这是可能的,因为基价*数量的组合可能会产生与基价+期权价格*数量相同的值。
Select * from (select col1, col2 from myTable where myOptions is not null) union all (select col1, count(col2) as col2 from myTable where myOptions is null group by col1);