Låt oss prova något annat. Jag föreslår bara detta som ett "svar" på grund av dess längd och du kan inte formatera en kommentar. Låt oss närma oss frågan modulärt som en serie delmängder som måste skäras. Låt oss se hur lång tid det tar att utföra var och en av dessa (rapportera). Ersätt t1 och t2 med dina tidsstämplar. Notera hur varje fråga bygger på den föregående, vilket gör den föregående till en "inbäddad vy".
EDIT:bekräfta också kolumnerna i tabellen Nätverk.
1
select PM.receiver_id from private_messages PM
where PM.create_at between (t1 and t2)
2
select U.id, U.network_id from users U
join
(
select PM.receiver_id from private_messages PM
where PM.create_at between (t1 and t2)
) as FOO
on U.id = FOO.receiver_id
3
select N.* from networks N
join
(
select U.id, U.network_id from users U
join
(
select PM.receiver_id from private_messages PM
where PM.create_at between (t1 and t2)
) as FOO
on U.id = FOO.receiver_id
) as BAR
on N.id = BAR.network_id