Ответы пользователя по тегу Базы данных
  • Как переделать коррелированный вложенный подзапрос в некоррелированный?

    @baitarakhov
    Для того, что бы можно сделать анализ, создай схему с нужным СУБД на сайте sqlfiddle.com и вышли линк на свою схему, далее посмотрим. По предварительному анализу, вижу что в вопрос в категорий MYSQL, так как я не работал с данным СУБД, то постараюсь написать выборку на простом SQL и что то на подобие MYSQL.

    1) Простой и читабельный вариант:
    select  t.*
     from fitness.pair_sports t
     where exists 
     (
     select t2.fio 
     from fitness.pair_sports t2
       where t2.fio = t.fio
     group by t2.fio
       having count(*) > 1
     );


    2) Какой то мутный вариант, возможно сработает
    select * from
    (
    select  @rownum:= case when t.fio <> @name then 0 else 1 end as rn,
            @name:=t.fio as name,
            t.*
     fitness.pair_sports t
    order by t.fio
    ) tt
    where tt.rn = 1;
    Ответ написан
    Комментировать