SQLinfo.ru - Все о MySQL

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

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

Вы не зашли.

#1 22.09.2011 20:16:48

dm-tlt
Участник
Зарегистрирован: 07.09.2009
Сообщений: 7

COUNT из другой таблицы...

совсем замучился ничего не понимаю уже...
есть таблица 1, со множеством записей konkurs_photo
id user_id image

и есть таблица 2 ratings_rateditem, используемая для голосования
id object_id

мне нужно получить count из второй таблицы, но почему то у меня получается count = число записей из первой таблицы умноженное на число записей из второй таблицы, т.е если в 1 таблицы 10 записей, а во второй всего 2 то count = 20, а хотелось бы получить 2...


SELECT konkurs_photo.id, ratings_rateditem.object_id, COUNT(ratings_rateditem.id) as count FROM konkurs_photo LEFT OUTER JOIN ratings_rateditem ON ratings_rateditem.object_id = konkurs_photo.user_id GROUP BY konkurs_photo.user_id
 

Неактивен

 

#2 23.09.2011 00:17:33

dm-tlt
Участник
Зарегистрирован: 07.09.2009
Сообщений: 7

Re: COUNT из другой таблицы...

Что никто не знает в чем может бы дело...?

Например в 1 таблице 3 записи, а во второй 2
Как мне получить количество записей во 2 таблице, в моем случае выдает количество 6....

Неактивен

 

#3 24.09.2011 18:26:16

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: COUNT из другой таблицы...

Только так и будет получаться. Можете считать COUNT(DISTINCT ratings_rateditem.id) —
будет некоторый быстрый хак в этом месте.

Неактивен

 

#4 25.09.2011 14:47:48

Александр Трофимов
Завсегдатай
Откуда: Юрмала
Зарегистрирован: 19.09.2011
Сообщений: 95

Re: COUNT из другой таблицы...

+1
DISTINCT помогает в таких случаях.

А почему хак?

Неактивен

 

#5 26.09.2011 00:28:23

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: COUNT из другой таблицы...

Будет медленно работать на больших объемах данных. DISTINCT не
использует индексы.

Неактивен

 

Board footer

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