Что мне делать, если я использую JOIN для запроса повторяющихся данных? Как написать SQL, используя статистику подсчета?

Пример

Например, есть две таблицы 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
wheregroup 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. В настоящее время для решения проблемы
можно использовать только подзапросы .

Guess you like

Origin blog.csdn.net/qq_34972627/article/details/131826730