У меня проблема с использованием WHERE IN со значением столбца
У меня есть данные, подобные приведенным ниже
Служба таблиц
id name sd_ids
1 House Cleaning 1,2
Детали службы таблиц
id name
1 living room
2 bedroom
Схема
CREATE TABLE IF NOT EXISTS `service` (
`id` int(6) unsigned NOT NULL,
`name` varchar(200) NOT NULL,
`sd_ids` varchar(200) NOT NULL,
PRIMARY KEY (`id`)
) DEFAULT CHARSET=utf8;
INSERT INTO `service` (`id`, `name`,`sd_ids`) VALUES
('1','House Cleaning','1,2');
CREATE TABLE IF NOT EXISTS `service_detail` (
`id` int(6) unsigned NOT NULL,
`name` varchar(200) NOT NULL,
PRIMARY KEY (`id`)
) DEFAULT CHARSET=utf8;
INSERT INTO `service_detail` (`id`, `name`) VALUES
('1','living room'),
('2','bedroom');
Я уже пробовал это
SELECT *,
(
SELECT
GROUP_CONCAT(name)
from service_detail
where id in(service.sd_ids)
) as service_detail
FROM service;
но результат не тот, который я хочу
id name sd_ids service_detail
1 House Cleaning 1,2 living
Я поставил схему и мойтестирование здесь http://sqlfiddle.com/#!9/49c34e/7
То, чего я хочу достичь, показывает результат, подобный приведенному ниже
id name sd_ids service_detail
1 House Cleaning 1,2 living room,bedroom
Я знаю, что эта схема не лучшая практика, но мне нужно предложение для достижения этой цели.
спасибо