SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 11.09.2009 10:15:46

VoLk88
Участник
Зарегистрирован: 11.09.2009
Сообщений: 4

Сортировка по данным подзапроса

есть вот такой код
SELECT * FROM `quotes` WHERE `id` IN (SELECT `qid` FROM `comments` ORDER BY COUNT(*) DESC) ORDER BY ? DESC

подзапрос выводит количество комментариев у поста, а сам запрос выводит строки из таблицы с постами. как сделать так, чтобы запрос вернул посты по количеству комментариев? даже как погуглить не знаю(

Неактивен

 

#2 11.09.2009 10:38:41

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5833

Re: Сортировка по данным подзапроса

В части ORDER BY можно использовать алиас или номер позиции колонки в перечислении выводимых колонок после SELECT
Также в сортировке можно использовать результат выражения – ORDER BY MONTH(birth);


Вы уверены в том, что ваш подзапрос выводит кол-во комментариев у поста?

Неактивен

 

#3 11.09.2009 10:46:19

VoLk88
Участник
Зарегистрирован: 11.09.2009
Сообщений: 4

Re: Сортировка по данным подзапроса

vasya, да, проверял отдельно, выводит то, что нужно
подзапрос выводит номера постов с наибольшим колличеством комментов по убыванию

Неактивен

 

#4 11.09.2009 11:00:41

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5833

Re: Сортировка по данным подзапроса

Напишите подзапрос в части перечисления полей (там где у вас сейчас *), который выведет вам именно кол-во комментариев, и сортируйте по нему, указав алиас или номер позиции колонки в перечислении выводимых колонок после SELECT.

Неактивен

 

#5 11.09.2009 11:33:35

VoLk88
Участник
Зарегистрирован: 11.09.2009
Сообщений: 4

Re: Сортировка по данным подзапроса

vasya, не совсем понял как это поможет решить мою проблему.
я сделаю подзапрос и откуда возьмутся qid? как можно будет установить соответствие с количеством комментариев и номером поста?
извините, возможно туплю, я специально в этот раздел написал

Неактивен

 

#6 11.09.2009 11:54:09

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5833

Re: Сортировка по данным подзапроса

SELECT q.* , (select count(*) from `comments` where qid=q.id) c FROM `quotes` ORDER BY c DESC;

Неактивен

 

#7 11.09.2009 12:10:51

VoLk88
Участник
Зарегистрирован: 11.09.2009
Сообщений: 4

Re: Сортировка по данным подзапроса

vasya, спасибо огромное!

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson