Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Вывод данных из 1 таблицы учитывая данные из другой
 
 автор: fivemusic   (04.11.2007 в 17:13)   письмо автору
 
 

Имеется 2 таблицы
1- users
2- Post


CREATE TABLE `users` (
  `id` int(255) NOT NULL auto_increment,
  `login` varchar(10) NOT NULL default '-',
  `pass` varchar(20) NOT NULL default '-',
  `email` varchar(30) NOT NULL default '-',
  `data` varchar(30) NOT NULL default '-',
  `money` int(10) NOT NULL default '0',
  `bals` int(10) NOT NULL default '0',
  `ip` varchar(30) NOT NULL default '',
  PRIMARY KEY  (`id`),
  UNIQUE KEY `id` (`id`)
)


и


CREATE TABLE `Post` (
  `id` int(10) NOT NULL auto_increment,
  `abc` varchar(2) NOT NULL default '',
  `kompoz` varchar(100) NOT NULL default '',
  `data` varchar(30) NOT NULL default '',
  `link` varchar(255) NOT NULL default '',
  `down` int(10) NOT NULL default '0',
  `active` int(2) NOT NULL default '0',
  `autor` varchar(100) NOT NULL default '',
  `login` varchar(100) NOT NULL default 'Admin',
  `moder` int(2) NOT NULL default '1',
  `xtest` text NOT NULL,
  PRIMARY KEY  (`id`),
  UNIQUE KEY `id` (`id`)
)


Нужно составить запрос который выводил бы всех пользователей из таблицы users у которых поле login не равнялось "-" и с сортированием по количеству постов из 2 таблицы. т.е.
если пользователь с логином User1 добавил 3 поста то в таблице Post будет 3 строки со значением User1 в поле login, и если кроме этого пользователя не добавил больше чем 3 поста то он выводится первым соответственно.

Проблема в том что я не понимаю как работать с соединениями таблиц, группировками и прочими сложностями - поэтому обращаюсь за помощью к вам!!! Помогите пожалуйста!!!

   
 
 автор: morkovkin   (05.11.2007 в 10:44)   письмо автору
 
   для: fivemusic   (04.11.2007 в 17:13)
 

Вам нужно, чтобы выводился список пользователей, которые оставили какое-то сообщение, и чтобы этот список выводился в порядке убывания? Т.е. чем меньше сообщений оставил пользователь, тем ниже он будет в списке? А те, кто не оставил сообщений - вообще не будет в списках.

   
 
 автор: fivemusic   (05.11.2007 в 12:39)   письмо автору
 
   для: morkovkin   (05.11.2007 в 10:44)
 

Собственно почти так! " чем меньше сообщений оставил пользователь, тем ниже он будет в списке" - это верно . "А те, кто не оставил сообщений - вообще не будет в списках." - тогда запрос составить было бы легко (просто обратясь к таблице ПОСТ сгруппировав по логинам и отсортировав по кол-ву повторений), мне надо чтобы выводились все юзеры с таблицы USERS с сортировкой по кол-ву сообщений добавленных в таблицу POST в порядке убывания.

   
 
 автор: morkovkin   (05.11.2007 в 14:02)   письмо автору
 
   для: fivemusic   (05.11.2007 в 12:39)
 

Cheops Вам подсказал правильное решение. Просто другие способы могут быть ещё более мучительными. А здесь один раз пропустить через скрипт, и добавить строчку кода, чтобы плюсовалось при добавлении и всё. И при конечном раскладе весь Ваш замысел, легко осуществится.

   
 
 автор: cheops   (05.11.2007 в 11:34)   письмо автору
 
   для: fivemusic   (04.11.2007 в 17:13)
 

Проще и быстрее добавить в таблицу users поле posts, которое увеличивать на единицу, если пользователь помещает запись в таблицу Post.

   
 
 автор: fivemusic   (05.11.2007 в 12:36)   письмо автору
 
   для: cheops   (05.11.2007 в 11:34)
 

да я это понимаю, что проще по столбцу считать! Просто уже поздно, БД наполнена.

   
 
 автор: cheops   (05.11.2007 в 12:38)   письмо автору
 
   для: fivemusic   (05.11.2007 в 12:36)
 

Почему поздно, добавить столбец и пройтись в цикле по всем пользователям.

   
 
 автор: fivemusic   (05.11.2007 в 12:43)   письмо автору
 
   для: cheops   (05.11.2007 в 12:38)
 

тогда придется передлывать в скрипте, например чтобы при добавлении плючовалось, при удалении минусовалось.

кстати вопрос можно в запросе указать так чтобы значение столбца XXX уменьшилось на единицу или учеличилось?

а не сделать запрос к этой таблице, узнав значение строки и приплюсовав 1.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования