1. SQL / Говнокод #9654

    −124

    1. 1
    SELECT `id`,`title`,`text`,`pubTime`, `visible`, `cat` , (SELECT `name` FROM `news_cat` WHERE news_cat.id=news.cat) AS `category` FROM `news`

    Запостил: DarkThinker, 12 Марта 2012

    Комментарии (11) RSS

    • Тот же джоин только в профиль =(
      Оптимизатор запросов все-равно сделает как надо.
      Говнокод только в том, как написан этот джоин?
      Ответить
      • За подзапросы нужно отрывать, как минимум, руки. Сегодня он пишет подзапрос в SELECT, а завтра напишет в WHERE >:-|
        Ответить
        • Согласен с предложением. Когда я работал запросчиком, нам за подзапросы в селекте всыпали живительных пиздюлей. С тех пор я как-то привык к тому, что совать их везде не стоит.
          Ответить
          • >Сегодня он пишет подзапрос в SELECT, а завтра напишет в WHERE >:-|
            Подзапросы нужны, иногда, но не в SELECT и не в WHERE, но в FROM. Я уже говорил об этом раньше.
            >нам за подзапросы в селекте всыпали живительных пиздюлей
            А вот это правильно.
            Ответить
        • Ой... была уже дискуссия про подзапросы.
          И чем же плох подзапрос в WHERE этого примера:
          SELECT * FROM SomeTable WHERE SomeField IN (SELECT SomeField FROM AnotherTable)?
          А чем плох подзапрос в EXISTS?
          *достал поп-корн, уселся поудобнее*
          Ответить
          • Для вашего запроса подзапрос выполнится единожды, но можно составить запрос, где подзапрос будет выполняться для каждого поля из "выбираемой" таблички. Этого лучше избегать.
            --
            rO_ot
            Ответить
            • Так и шахматы убить могут, заснешь во время игры и глазом на ферзя упадешь.
              Почему-то у всех такие категоричности в отношениях к подзапросам. А как приводишь годные примеры, так сразу "а вы тут не так написали, надо вот так-то и так-то". Если не все подзапросы зло, то и не надо этого писать. А если Вас лично отучили их использовать, возможно, это говорит о том, как Вы их использовали.
              Складывается впечатление, что подзапросы - это граната, которая в руках обезьяны становится опасной.
              Ответить
        • >За подзапросы нужно отрывать, как минимум, руки.
          Хорошо, а если подзапрос используется в таком виде:
          select col1,...
          from xxx
          where col1 NOT in (
               select col1
                from yyy
                where ....
          )

          Как показывает практика left outer join и последующий is null в таких случаях отрабатывают медленей.
          По чем зря будем отрывать людям руки?
          Ответить
    • Кривота. Люди не могут into sql.
      Ответить
    • показать все, что скрытоvanished
      Ответить

    Добавить комментарий