Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: MySQL запрос
Форумы портала PHP.SU » PHP » SQL и Архитектура БД » MySQL запрос

Страниц (1): [1]
 

1. rafonets - 20 Марта, 2013 - 12:33:48 - перейти к сообщению
Добрый день, стоит такая задача:

Есть две таблицы в мускуле.

Строение первой:

(int)id_friend
(int)id_user

Строение второй:

(int)from

Нужно выбрать поля исходя их количества полей во второй таблице. Т.е. первое условие если id_user равно такому-то пользователю, а второе сортировать их по количеству полей во второй таблице(т.е. сколько полей во второй таблице с from == id_user).

Пробовал разными способами не смог ничего сделать...
2. LIME - 20 Марта, 2013 - 13:55:06 - перейти к сообщению
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT id_friend,COUNT(`from`) cnt FROM tbl1 JOIN tbl2 ON `from`=id_user WHERE id_user=$id GROUP BY `from` ORDER BY cnt
3. rafonets - 20 Марта, 2013 - 14:04:15 - перейти к сообщению
LIME пишет:
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT id_friend,COUNT(`from`) cnt FROM tbl1 JOIN tbl2 ON `from`=id_user WHERE id_user=$id GROUP BY `from` ORDER BY cnt

м... результат какой-то не такой... MySQL возвращает такой результат:

id_friend | cnt
10 | 40

Хотя должно быть 7 строчек. Соответственно у пользователя 7 друзей и нужно выводит их по количеству сообщений отправленных пользователю (вторая таблица, в ней сообщения).

 

Powered by ExBB FM 1.0 RC1