|
|
|
| Есть 2 запроса
Первый подсчитывает количество по каждому столбцу таблицы punkt -
SELECT
COUNT(*)
FROM
account_ob INNER JOIN punkt ON account_ob.login = punkt.description
group by account_ob.login
|
А второй общее количесво
select COUNT(*) from account_ob
|
И сложить все получившиеся значения первго запроса, то по идее должно оно совпасться со вторым, а получается есть разница. Что может быть не так? | |
|
|
|
|
|
|
|
для: ols
(03.12.2008 в 18:27)
| | в общем случае первое не должно совпадать со вторым.
Из-за JOIN ... ON | |
|
|
|
|
|
|
|
для: Trianon
(03.12.2008 в 18:34)
| | Это как? Извините, не догоняю | |
|
|
|
|
|
|
|
для: ols
(03.12.2008 в 18:37)
| | JOIN ... ON ограничивает строки лишь теми, которые попадают под условие.
Строки, которые под условие не попадут, посчитаны не будут. | |
|
|
|
|
|
|
|
для: Trianon
(03.12.2008 в 19:16)
| | Хм..А как тогда можно поступить? | |
|
|
|
|
|
|
|
для: ols
(03.12.2008 в 19:23)
| | С чем?
Вы собственный вопрос прочли? | |
|
|
|
|
|
|
|
для: Trianon
(03.12.2008 в 19:16)
| | Так в запросе же условия нет никакого? По идее он должен подсчитать кол-во для каждого account_ob.login и если сложить между собой значения каждого account_ob.login то они дать тот же количественный результат что и
select COUNT(*) from account_ob
|
| |
|
|
|
|
|
|
|
для: ols
(03.12.2008 в 20:38)
| | Условие есть. В разделе JOIN...ON. account_ob.login = punkt.description
Разжевываю: Согласно этому условию для каждой нужной к подсчету строки из первой таблицы во второй таблице обязательно должна присутствовать как минимум одна строка ей соответствующая.
Запрос select COUNT(*) from account_ob таких ограничений не накладывает.
Отсюда разный результат. | |
|
|
|
|
|
|
|
для: Trianon
(03.12.2008 в 20:44)
| | Все я понял о чем Вы. Наконец-то разобрался. Недаром столько времени провозился. Спасиба большое! | |
|
|
|