Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
несколько LEFT JOIN (Ник) 04/04/2013 - 18:18:24
      Re: несколько LEFT JOIN (Akina) 04/04/2013 - 21:05:54
      Re: несколько LEFT JOIN (Ник) 05/04/2013 - 10:31:02
      Re: несколько LEFT JOIN (Akina) 05/04/2013 - 11:13:07
      Re: несколько LEFT JOIN (Ник) 05/04/2013 - 12:16:29
      Re: несколько LEFT JOIN (Akina) 05/04/2013 - 13:42:02
      Re: несколько LEFT JOIN (Ник) 05/04/2013 - 14:34:33
      Re: несколько LEFT JOIN (Akina) 05/04/2013 - 14:42:59
      Re: несколько LEFT JOIN (Ник) 08/04/2013 - 11:48:15
      Re: несколько LEFT JOIN (Akina) 08/04/2013 - 12:34:55
      Re: несколько LEFT JOIN (Akina) 08/04/2013 - 12:36:59
      Re: несколько LEFT JOIN (Ник) 08/04/2013 - 14:54:28
      Re: несколько LEFT JOIN (Akina) 08/04/2013 - 15:39:53
      Re: несколько LEFT JOIN (Ник) 09/04/2013 - 15:52:07

> Original message text:
> From: Ник - 04/04/2013 - 18:18:24
> Subject:несколько LEFT JOIN
> -----------------
> есть запрос:
>
> SELECT t1.ID, t1.user_login, t1.user_registered, t1.user_pic, COUNT(t3.com_user_id) add_comment, COUNT(t2.userID) add_db
> FROM anime_users t1
> LEFT JOIN comments t3
> ON t1.ID=t3.com_user_id
> LEFT JOIN
> (
> SELECT an_user_id_add userID
> FROM anime WHERE an_status=1
> UNION ALL
> SELECT mn_user_id_add
> FROM manga WHERE mn_status=1
> UNION ALL
> SELECT fg_user_id_add
> FROM figures WHERE fg_status=1
> ) t2
> ON t1.ID=t2.userID
> WHERE t1.user_status > '0' AND NOT ((t3.com_source_id='555' OR t3.com_source_id='61') AND t3.com_source='1')
> GROUP BY t1.ID, t1.user_login
> ORDER BY add_comment DESC
>
> Судя по тому что в столбцах add_db и add_comment полная ерунда, запрос неверный. Помогите исправить, пожалуйста.
> Если убрать один из LEFT JOIN и соответвующий COUNT - все получается как надо. Но два вместе не хотят корректно работать.
>


From: Ник - 05/04/2013 - 12:16:29
Subject:несколько LEFT JOIN
-----------------
ЕСТЬ

1. таблица с юзерами
2. таблица, с комментами, которые юзеры оставляют
3. три таблицы с аниме, мангой и фигурками, которые юзеры добавляют на сайт.
Итого несколько таблиц, где засвечивается id юзера.

ЦЕЛЬ

Вывести статистическую таблицу, в которой есть три столбца:
1. имя юзера
2. сколько юзер оставил всего комментов
3. сколько юзер всего добавил в БД сайта

На данном этапе работает запрос по таблице с юзерами и в php-коде в цикле вывода юзеров к каждому юзеру делается запрос о том, сколько он добавил всего стафа и сколько он всего оставил комментов. Выводится по 50 юзеров на странице и мне подумалось что сто простых запросов в цикле наверняка отработают медленнее, чем один, пусть и сложный запрос. Вот этот один запрос я и пытаюсь создать.

ОЖИДАЕМЫЙ РЕЗУЛЬТАТ:

юзеры|добавлено|комментов
-------------------------
user1|----2----|----2----|
user2|----4----|----3----|

ДАМПЫ

CREATE TABLE IF NOT EXISTS `anime_users` (
`ID` mediumint(20) unsigned NOT NULL AUTO_INCREMENT,
`user_login` varchar(40) NOT NULL
PRIMARY KEY (`ID`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ;

INSERT INTO `anime_users` (`ID`, `user_login`) VALUES
(8, 'user1'),
(10, 'user2');

CREATE TABLE IF NOT EXISTS `comments` (
`com_id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
`com_text` varchar(4000) DEFAULT NULL,
`com_user_id` mediumint(8) unsigned NOT NULL,
UNIQUE KEY `com_id` (`com_id`),
KEY `com_user_id` (`com_user_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

INSERT INTO `comments` (`com_text`, `com_user_id`) VALUES
('текст1',8),
('текст2',10),
('текст3',10),
('текст4',10),
('текст5',8);

CREATE TABLE IF NOT EXISTS `anime` (
`an_id` mediumint(11) unsigned NOT NULL AUTO_INCREMENT,
`an_user_id_add` varchar(30) NOT NULL
UNIQUE KEY `an_id` (`an_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

INSERT INTO `anime` (`an_user_id_add`) VALUES
(8),(10);

CREATE TABLE IF NOT EXISTS `manga` (
`mn_id` mediumint(11) unsigned NOT NULL AUTO_INCREMENT,
`mn_user_id_add` varchar(30) NOT NULL
UNIQUE KEY `mn_id` (`mn_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

INSERT INTO `manga` (`mn_user_id_add`) VALUES
(10),(8);

CREATE TABLE IF NOT EXISTS `figures` (
`fg_id` mediumint(11) unsigned NOT NULL AUTO_INCREMENT,
`fg_user_id_add` varchar(30) NOT NULL
UNIQUE KEY `fg_id` (`fg_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

INSERT INTO `figures` (`fg_user_id_add`) VALUES
(10),(10);



[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
42352



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |