powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / COUNT, GROUP BY, два LEFT JOIN'a
8 сообщений из 8, страница 1 из 1
COUNT, GROUP BY, два LEFT JOIN'a
    #39324120
ADsoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Понимаю, что туплю и просто уже не вижу в чем дело....

Имеем запрос

Код: sql
1.
2.
3.
4.
5.
6.
SELECT COUNT(p.id) AS s			
			FROM st_point AS p
			LEFT JOIN st_foto AS f ON p.id = f.id_point 
			LEFT JOIN st_review AS r ON p.id = r.id_point			
			WHERE p.id_user = 100 OR f.id_owner = 100 OR r.id_user = 100
			GROUP BY p.id


что есть ху... - имеем таблицу мест st_point, и связанных с ней таблиц фото и отзывов st_foto, st_review
Задача - найти количество всех мест, которые создал пользователь с id = 100, или добавил к этим местам фото или отзыв
кол-во мест место созданное пользователем, в котором он добавлял кучу фото или отзывов - конечно же не должно плодится как кошки весной
.... а плодится
хочется получить простой ответ в виде одного числа.... а что-то не соображу
...
Рейтинг: 0 / 0
COUNT, GROUP BY, два LEFT JOIN'a
    #39324152
ADsoft,

используй подзапрос (deriver table, select-from-select) для предварительного вычисления агрегатов по таблицам фото и отзывов. после чего результат джойн к таблице мест...
...
Рейтинг: 0 / 0
COUNT, GROUP BY, два LEFT JOIN'a
    #39324827
ADsoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
попробовал так
Код: sql
1.
2.
3.
4.
5.
6.
7.
SELECT COUNT(*) AS s	FROM 
  (SELECT * FROM st_point AS p
	LEFT JOIN st_foto AS f ON p.id = f.id_point 
	LEFT JOIN st_review AS r ON p.id = r.id_point			
	WHERE p.id_user = 100 OR f.id_owner = 100 OR r.id_user = 100
	GROUP BY p.id
) AS w


на каком то наборе вроде верно считает но не всегда - значить что-то неверно понял
...
Рейтинг: 0 / 0
COUNT, GROUP BY, два LEFT JOIN'a
    #39324840
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ADsoftЗадача - найти количество всех мест, которые создал пользователь с id = 100, или добавил к этим местам фото или отзыв
кол-во мест место созданное пользователем, в котором он добавлял кучу фото или отзывов - конечно же не должно плодится как кошки весной
Пользователь создал 3 места, к одному из них добавил 2 фото, к другому 1 фото и 1 отзыв, а также добавил 1 отзыв к 1 чужому месту, 1 отзыв и 2 фото к другому чужому месту, и 2 фото к третьему... и какой же
ADsoftпростой ответ в виде одного числа
ты желаешь в этом случае получить?
...
Рейтинг: 0 / 0
COUNT, GROUP BY, два LEFT JOIN'a
    #39325654
ADsoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina,
желаю получить ответ я...
количество "активностей" в местах....
активность подразумевает под собой ИЛИ добавление места, ИЛИ добавления к месту фото ИЛИ добавление к месту отзыва
....но с группировкой по местам, то есть если я и добавил сесто и 5 фото к нему добавил и 3 отзыва - это одна Активность....
...
Рейтинг: 0 / 0
COUNT, GROUP BY, два LEFT JOIN'a
    #39325681
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
SELECT COUNT(*)
FROM (
        SELECT id FROM st_point WHERE id_user = 100
    UNION
        SELECT id_point FROM st_foto WHERE id_owner = 100
    UNION
        SELECT id_point FROM st_review WHERE id_user = 100
      ) dummy
...
Рейтинг: 0 / 0
COUNT, GROUP BY, два LEFT JOIN'a
    #39326661
ADsoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina,

чего сразу dummy то....
ваш запрос посчитает все, да не раз.... и например созданное мной место к которому я поставил 5 отзывов и 3 фото - он насчитает 1+5+3 = аж 9! а должен 1
...
Рейтинг: 0 / 0
COUNT, GROUP BY, два LEFT JOIN'a
    #39327280
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ADsoftнапример созданное мной место к которому я поставил 5 отзывов и 3 фото - он насчитает 1+5+3 = аж 9! а должен 1Вот то есть даже не посмотрел, и сразу критиковать... а по делу-то есть чего сказать? Единица будет, единица...
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / COUNT, GROUP BY, два LEFT JOIN'a
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]