у меня 4 таблицы.
Последовательность
id -> primary key
name
user_id -> foreign key (users id)
человек:
id-> primary key
name-> varchar
seq_id -> foreign key from sequences
user_id -> foreign key from users
links_clicked:
id-> primary key
src_id -> foreign key (sequences id)
views -> Boolean
people_sequence
sequence_id-> foreign key (sequences id)
people_id -> foreign key (people id)
Мне нужно получить подробную информацию о последовательностях, количество кликов по ссылкам из таблицы ссылок, количество людей, если там указан seq_id, и количество последовательностей из последовательности из таблицы people_sequence.
Я думаю, что мне нужно использовать левые соединения, и я написал запрос, как показано ниже:
SELECT sequences.*
,sum(link_clicked.view) as click_rate
,count(people.seq_id) as prospect
,count(people_sequences.sequence_id) as seqret
FROM sequences
LEFT JOIN link_clicked ON sequences.id=link_clicked.src_id
LEFT JOIN people ON sequences.id=people.seq_id
LEFT JOIN people_sequences ON sequences.id=people_sequences.sequence_id
where sequences.user_id = 1
group by sequences.id
но это возвращает количество для каждого из столбцов подсчета как то же самое
Невозможно понять, что не так с SQL
id | name | user_id |click_rate | prospect|seqret
5ac77be52d06e | seq1 |1 | 414 | 1890 | 1890
5ae790b48fea9 | seq2 |1 | 8 | 43 | 0
5ae790b6e0b12 | seq3 |1 | 2 | 0 | 0
5ae835c5153b5 | seq4 |1 | NULL | 0 | 0
это результат, который я получаю, но если я сделаю SQL, сумма просмотров будет другой.
SELECT `src_id` ,sum(`view`) FROM `link_clicked ` group by src_id
src_id | sum(`view`)
5ac77be52d06e | 23
5ae790b48fea9 | 8
5ae790b6e0b12 |2