Вариант 1 — в лоб. Формально работает правильно (в оличие от первых двух ответов), но некрасиво: SELECT * FROM test t1
WHERE
t1.is_main = (
SELECT MAX(is_main) FROM test t2 WHERE t2.parent_id = t1.parent_id
)
OR NOT EXISTS(SELECT * FROM test t2 WHERE t2.parent_id = t1.parent_id AND t2.is_main IS NOT NULL)
GROUP BY t1.parent_id
По MySQL Workbench отдельная история. Под Линукс он почему-то глючный у меня сильно. Поэтому после переезда на убунту все чаще схему БД правлю прямо в Eclipse в .sql файликах руками (ALTER TABLE.....) — получается даже быстрее и удобнее, чем клацать мышкой по окошкам. Да и полезнее, я надеюсь )
Ответ написан
Комментировать
Комментировать
Оценили как «Нравится»
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.