- 1
SELECT `id`,`title`,`text`,`pubTime`, `visible`, `cat` , (SELECT `name` FROM `news_cat` WHERE news_cat.id=news.cat) AS `category` FROM `news`
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−124
SELECT `id`,`title`,`text`,`pubTime`, `visible`, `cat` , (SELECT `name` FROM `news_cat` WHERE news_cat.id=news.cat) AS `category` FROM `news`
Оптимизатор запросов все-равно сделает как надо.
Говнокод только в том, как написан этот джоин?
Подзапросы нужны, иногда, но не в SELECT и не в WHERE, но в FROM. Я уже говорил об этом раньше.
>нам за подзапросы в селекте всыпали живительных пиздюлей
А вот это правильно.
И чем же плох подзапрос в WHERE этого примера:
SELECT * FROM SomeTable WHERE SomeField IN (SELECT SomeField FROM AnotherTable)?
А чем плох подзапрос в EXISTS?
*достал поп-корн, уселся поудобнее*
--
rO_ot
Почему-то у всех такие категоричности в отношениях к подзапросам. А как приводишь годные примеры, так сразу "а вы тут не так написали, надо вот так-то и так-то". Если не все подзапросы зло, то и не надо этого писать. А если Вас лично отучили их использовать, возможно, это говорит о том, как Вы их использовали.
Складывается впечатление, что подзапросы - это граната, которая в руках обезьяны становится опасной.
Хорошо, а если подзапрос используется в таком виде:
Как показывает практика left outer join и последующий is null в таких случаях отрабатывают медленей.
По чем зря будем отрывать людям руки?