Пример
Например, есть две таблицы tbl_a и tbl_b следующим образом:
tbl_a
идентификатор | имя |
---|---|
1 | Брюс |
2 | Майк |
3 | Анджела |
таблица_б | |
идентификатор | помогать |
:-: | :-: |
1 | 1 |
2 | 1 |
3 | 2 |
4 | 3 |
5 | 3 |
6 | 3 |
Если мы в это время сделаем совместный запрос, появятся дублирующиеся данные: |
select a.id, a.name from tbl_a a
join tbl_b b on a.id = b.a_id
where …
Найденные таким образом данные будут выглядеть так:
идентификатор | имя |
---|---|
1 | Брюс |
1 | Брюс |
2 | Майк |
3 | Анджела |
3 | Анджела |
3 | Анджела |
решать
Удалить дубликаты можно тремя способами:
1. отчетливый
select distinct a.id, a.name from tbl_a a
join tbl_b b on a.id = b.a_id
where …
2. группировать по
select a.id, a.name from tbl_a a
join tbl_b b on a.id = b.a_id
where …
group by a.id
3. Подзапрос
select a.id, a.name from tbl_a a
where a.id = (select a_id from tbl_b where a_id = a.id)
Что делать со счетом?
Если вы хотите использовать статистику подсчета, просто следуйте первоначальному методу записи, и вы получите слишком много статистики, а использовать отдельные и группированные данные в настоящее время непросто.
Different не имеет прямого эффекта, но группируется по очереди, подсчитывая числа в соответствии с идентификатором tbl_a. В настоящее время для решения проблемы
можно использовать только подзапросы .