我有的:
一桌水果 食品(我从中选择水果),每个水果两排,小号一排,大号一排。
id | category | subcategory | title | description | value
-----------------------------------------------------------------
1 | Fruit | Small | Plum | Om, nom, nom! | 0.50
2 | Fruit | Large | Plum | Om, nom, nom! | 1.50
3 | Fruit | Small | Orange | Mmm, citrus. | 0.30
4 | Fruit | Large | Orange | Mmm, citrus. | 0.75
5 | Fruit | Small | Melon | Get in mah belly! | 2.00
6 | Fruit | Large | Melon | Get in mah belly! | 3.10
我需要的:
我需要将每个水果的两行合并为一行:
category,title和description对于每对行将始终相同。
每对行的id、subcategory和value总是不同的。
id.r1 | id.r2 | category.r1 | title.r1 | description.r1 | subcategory.r1 | value.r1 | subcategory.r2 | value.r2
-----------------------------------------------------------------------------------------------------------------------
1 | 2 | Fruit | Plum | Om, nom, nom! | Small | 0.50 | Large | 1.50
3 | 4 | Fruit | Orange | Mmm, citrus. | Small | 0.30 | Large | 0.75
5 | 6 | Fruit | Melon | Get in mah belly! | Small | 2.00 | Large | 3.10
我试过的:
SELECT r1.id,
(SELECT r2.id FROM `my_table` r2 WHERE r1.title = r2.title),
r1.category,
r1.subcategory,
(SELECT r2.category FROM `my_table` r2 WHERE r1.title = r2.title)
r1.title,
r1.description,
r1.value,
(SELECT r2.value FROM `my_table` r2 WHERE r1.title = r2.title)
FROM `my_table` r1
WHERE category = "Fruit"
...产生:
子查询返回超过 1 行
我的问题:
我应该如何修改上述查询以实现我所描述的?