Помогите правильно построить запрос

Тема в разделе "PHP", создана пользователем MAD-BOYT, 2 авг 2010.

Статус темы:
Закрыта.
Модераторы: latteo
  1. MAD-BOYT

    MAD-BOYT Постоялец

    Регистр.:
    22 ноя 2007
    Сообщения:
    75
    Симпатии:
    8
    Привет всем.
    Есть две таблицы с таким содержимым
    Код:
    CREATE TABLE `users` (
      `id` int(11) NOT NULL auto_increment,
      `username` varchar(100) NOT NULL,
      `email` varchar(100) NOT NULL,
      `password` varchar(100) NOT NULL,
      `date` varchar(100) NOT NULL,
      `ip` varchar(100) NOT NULL,
      `ban` enum('0','1') NOT NULL,
      `act` enum('0','1') NOT NULL,
      `admin` enum('0','1') NOT NULL default '0',
      PRIMARY KEY  (`id`)
    ) ENGINE=MyISAM;
    и
    CREATE TABLE `news` (
      `id` int(11) NOT NULL auto_increment,
      `news_id` varchar(100) NOT NULL,
      `news_hits` int(11) NOT NULL,
      `user_id` int(11) NOT NULL,
      PRIMARY KEY  (`id`)
    ) ENGINE=MyISAM;
    Есть запрос который выводит пользователей
    Код:
    $query2 = mysql_query("SELECT * FROM users");
    $num_users = mysql_num_rows($query2);
    while($row2 = mysql_fetch_array($query2)){ $users[] = $row2; }
    Как этот запрос можно составить так, чтобы можно было выводить ТОП 10 пользователей у которых больше всего новостей?
    Т.е. имя лежит в первой таблице, а количество новостей во второй.
    Из одной еще могу составить как нужно, а вот из двух....
    Заранее спасибо.
     
  2. kud

    kud Постоялец

    Регистр.:
    18 фев 2009
    Сообщения:
    89
    Симпатии:
    11
    Код:
    SELECT users.*, count(news.*) as num_news FROM users LEFT JOIN news ON users.id = news.user_id GROUP BY users.id ORDER BY num_news DESC LIMIT 10
     
Статус темы:
Закрыта.