select c.name, k.type, k.value
from cars c
left join kit k on (k.type = 'disk' and k.value is not null) and
(k.type = 'turbo' and k.value is null)
where c.id = k.car_id
EXPLAIN SELECT GROUP_CONCAT(type) as x, car_id
FROM kit k1
GROUP BY car_id
HAVING FIND_IN_SET('disk', x) != 0 AND FIND_IN_SET('turbo', x) = 0;
INSERT INTO `cars` (`id`, `name`) VALUES
(3, 'MERS'),
(4, 'SAAB');
INSERT INTO `kit` (`type`, `value`, `car_id`) VALUES
('disk', '15', 3),
('turbo', 'TD-04', 3),
('turbo', 'TD-05', 4);
Туда нужно было что-то добавить?Ты с моим примером что сделал? Ты туда хоть первую таблицу cars приджоинил?
SELECT car_id, c.name, GROUP_CONCAT(type) as x, k1.value
FROM kit k1
join cars c on k1.car_id = c.id
GROUP BY car_id
HAVING FIND_IN_SET('disk', x) != 0 AND FIND_IN_SET('turbo', x) = 0
select car_id, c.name, GROUP_CONCAT(type) as x, k1.value
from kit k1, cars c
where k1.car_id = c.id
GROUP BY car_id
HAVING FIND_IN_SET('disk', x) != 0 AND FIND_IN_SET('turbo', x) = 0