SQLinfo.ru - Все о MySQL

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

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

Вы не зашли.

#1 22.06.2010 13:35:20

Ruslana
Участник
Зарегистрирован: 22.06.2010
Сообщений: 4

проблема с количеством

возникла проблема с количеством, когда существует количество в трьох колонках, тогда оно почему-то ставит одинаковые количества с одной колонки в остальные, где должно быть другое количество

select areas.id, areas.areaName, areas.areaCode, count(sites.areaID) as sites, count(link_areas_products.areaID) as products, count(projects.areaID) as projects
from areas
LEFT OUTER JOIN sites on sites.areaID=areas.id
LEFT OUTER JOIN link_areas_products on link_areas_products.areaID=areas.id
LEFT OUTER JOIN projects on projects.areaID=areas.id
group by areas.id, areas.areaName, areas.areaCode
order by areaName

выводит:
1 d1 DD 13 13 13
2 f1 FF 1 0 0
а должно выводить:
1 d1 DD 13 1 1
2 f1 FF 1 0 0

Неактивен

 

#2 22.06.2010 13:41:12

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

Re: проблема с количеством

COUNT() выводит количество строк результирующего объединения.
Вы можете поставить COUNT(DISTINCT field). Если поля у Вас разли-
чаются, то это спасет. Но если Вы хотите считать количества строк
в подтаблицах, то только подзапросами.

Неактивен

 

#3 22.06.2010 13:46:37

Ruslana
Участник
Зарегистрирован: 22.06.2010
Сообщений: 4

Re: проблема с количеством

пробовала COUNT(DISTINCT field), не помагает, а можно какой-то пример с подзапросами?

Неактивен

 

#4 22.06.2010 13:51:04

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

Re: проблема с количеством

SELECT areas.id, (SELECT COUNT(*) FROM sites WHERE areaID = areas.id) AS sites
FROM areas;

Неактивен

 

#5 22.06.2010 13:56:05

Ruslana
Участник
Зарегистрирован: 22.06.2010
Сообщений: 4

Re: проблема с количеством

большое спасибо, вечером попробую

Неактивен

 

#6 22.06.2010 20:37:24

Ruslana
Участник
Зарегистрирован: 22.06.2010
Сообщений: 4

Re: проблема с количеством

получилось, как раз то что мне было нужно, еще раз большое спасибо

Неактивен

 

Board footer

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