我有以下简化的模式和数据:
Schema(MySQL v5.7.22):
CREATE TABLE `config_remap` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(200),
`addons` json,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `products` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`product_name` varchar(500) DEFAULT NULL,
`requested_remap_id` int(11) DEFAULT NULL,
`requested_addons` json,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO `config_remap` (`id`, `name`, `addons`)
VALUES(1, 'Remap 1',
'[{"id": 0,"name": "Addon 0"},
{"id": 1,"name": "Addon 1"},
{"id": 2,"name": "Addon 2"}
]');
INSERT INTO `products` (`id`, `product_name`, `requested_remap_id`, `requested_addons`)
VALUES (1, 'Audi A4', 1, '[\"0\", \"2\"]');
和以下查询:
select products.id, products.product_name, products.requested_addons, config_remap.name as requested_addon
from products
left join config_remap on config_remap.id = products.requested_remap_id
其产生以下结果:
| 产品名称|requested_addons| requested_addon| requested_addon |
| --|--|--| ------------ |
| 奥迪A4| [“0”,“2”]|重Map1| Remap 1 |
我想更改查询,以便它可以将requested_addons
的ID替换为config_remap
中的名称。addons
。因此预期结果应该类似于:
| 产品名称|requested_addons| requested_addon| requested_addon |
| --|--|--| ------------ |
| 奥迪A4| [“插件0”,“插件2”]|重Map1| Remap 1 |
View on DB Fiddle
我使用的是MySQL 5.7.22
1条答案
按热度按时间gijlo24d1#
| 产品名称|requested_addons| requested_addon| requested_addon |
| --|--|--| ------------ |
| 奥迪A4| [“插件0”,“插件2”]|重Map1| Remap 1 |
fiddle
一般来说,有不超过15个插件可供选择。- Milen Mihalev
相应地展开
numbers
合成表。