SQLinfo.ru - Все о MySQL

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

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

Вы не зашли.

#1 31.08.2016 19:51:27

Konstantin78
Участник
Зарегистрирован: 21.02.2013
Сообщений: 14

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

Доброе время суток.
Помогите завершить запрос:

SELECT COUNT(DISTINCT newsarchives.id) AS countroup, newsarchives.id, newsarchives.topic, newsarchives.preamble, photos.name_photo, photos.preamble FROMnewsarchives left join photos on photos.newsarchives_id =newsarchives.id where (newsarchives.type = 1 and photos.preamble = 0) or (newsarchives.type = 1 andphotos.preamble is null) GROUP BY photos.name_photo ORDER BY `newsarchives`.`id` ASC

Который выдает следующий результат https://www.dropbox.com/s/qs3hku7ilompmtv/help.png?dl=0


Нужно в колонке “countroup” получить суммарное значение одинаковых «topic»
Я красным нарисовал, что должно быть в колонке

Заранее спасибо


Прикрепленные файлы:
Attachment Icon help.png, Размер: 63,975 байт, Скачано: 346

Неактивен

 

#2 01.09.2016 00:48:26

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

Re: Помогите завершить запрос

select (select count(*) from t t1 where t1.topic=t.topic) countroup, t.* from
(SELECT newsarchives.id, newsarchives.topic, newsarchives.preamble, photos.name_photo, photos.preamble FROMnewsarchives left join photos on photos.newsarchives_id =newsarchives.id where (newsarchives.type = 1 and photos.preamble = 0) or (newsarchives.type = 1 andphotos.preamble is null) GROUP BY photos.name_photo) t
ORDER BY t.`id` ASC

Неактивен

 

#3 01.09.2016 12:05:05

Konstantin78
Участник
Зарегистрирован: 21.02.2013
Сообщений: 14

Re: Помогите завершить запрос

mysql не знает почему-то таблицы  "t" в первой скобке "(select..." вашего запроса:

#1146 - Table 'v-d.t' doesn't exist

хотя "t.*" - он знает

Отредактированно Konstantin78 (01.09.2016 12:12:29)

Неактивен

 

#4 01.09.2016 12:32:40

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

Re: Помогите завершить запрос

а зачем вам GROUP BY photos.name_photo в запросе?
какую задачу вы пытаетесь решить? есть подозрение, что запрос можно сильно упростить
покажите пример тестовых данных из обеих таблиц и какой итог вы хотите получить на этих данных

иначе вместо t в подзапросе нужно полностью дублировать
(SELECT newsarchives.id, newsarchives.topic, newsarchives.preamble, photos.name_photo, photos.preamble FROMnewsarchives left join photos on photos.newsarchives_id =newsarchives.id where (newsarchives.type = 1 and photos.preamble = 0) or (newsarchives.type = 1 andphotos.preamble is null) GROUP BY photos.name_photo)

Неактивен

 

#5 01.09.2016 12:51:55

Konstantin78
Участник
Зарегистрирован: 21.02.2013
Сообщений: 14

Re: Помогите завершить запрос

Вот, посмотрите пожалуйста


Прикрепленные файлы:
Attachment Icon tabl.png, Размер: 69,564 байт, Скачано: 357

Неактивен

 

#6 01.09.2016 18:10:41

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

Re: Помогите завершить запрос

Так?

SELECT (select count(*) from photos where newsarchives_id = newsarchives.id) AS countroup,
 newsarchives.id, newsarchives.topic, newsarchives.preamble, photos.name_photo, photos.preamble
FROM newsarchives left join photos on photos.newsarchives_id =newsarchives.id
where (newsarchives.type = 1 and photos.preamble = 0) or (newsarchives.type = 1 andphotos.preamble is null)
ORDER BY `newsarchives`.`id` ASC;
 

Неактивен

 

#7 01.09.2016 21:13:04

Konstantin78
Участник
Зарегистрирован: 21.02.2013
Сообщений: 14

Re: Помогите завершить запрос

Да, еще раз спасибо.

Только единственное что нужно добавить

SELECT (select count(*) from photos where newsarchives_id = newsarchives.id AND photos.preamble = 0) AS countroup, newsarchives.id, newsarchives.topic, newsarchives.preamble, photos.name_photo, photos.preamble FROM newsarchives left join photos on photos.newsarchives_id = newsarchives.id where (newsarchives.type = 1 and photos.preamble = 0) or (newsarchives.type = 1 and photos.preamble is null) ORDER BY `newsarchives`.`id` ASC

а то запрос все фотографии считает

Отредактированно Konstantin78 (01.09.2016 21:14:41)

Неактивен

 

Board footer

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