если надо проверить наличие или отсутствие записи, то надо именно это и делать:
where not exists (select * from Таблица В where ... тут уже досочинияете сами)
а right или left join практически то же самое. можно и с ними, но зачем?
Спасибо! А как обойти проблему с тем что b.value и a.option_id - разные переменные?
В таблице В как бы даже и нет a.option_id - есть только ее значения?
Quotro: что значит разные переменные? Есть таблицы, есть данные, есть поля, они же колонки. Никаких переменных тут нет.
Вы в Таблица B.value сохраняете значения из Таблица А.option_id через запятую? Или это просто для примера приведено?
Да, так сохраняется, не для примера.
Да, value - длинный ряд значений option_id, через запятую
Мы же не можем напрямую их "выцепить", это разные вещи...
Quotro: я вижу два варианта:
первый: в sql распарсить Таблица B.value и сравнивать с Таблица А.option_id. Посмотрите, какие функции есть для получения значений из списка.
второй: написать простой скрипт, в котором все проверяется и в конце удаляется.
Второй вариант мне кажется менее геморойным.
Оказалось, что ЦМС создает индексную таблицу, где option_id хранятся по одному (должны же они откуда-то браться). А у value, которое я хотела первоначально использовать, еще и тип данных - текст.
В общем, враг (неиспользуемые опции) пойман и обезврежен