sql >> Database teknologi >  >> RDS >> Mysql

Følgende forespørgsel tager for lang tid at udføre. Hvordan man optimerer det

Jeg tror, ​​du kan bruge

i stedet for JOIN.

SELECT m.year, COUNT(m.id) FROM movies m 
where 
exists (select * from roles r where r.movie_id=m.id and 
exists(select * from actors a where a.id=r.actor_id and a.gender='F'))
group by  m.year;

For at vise det samlede antal film pr. år sammen med ovenstående output.

select t1.year,t1.count,t2.total from 
(
SELECT m.year as year, COUNT(m.id) as count FROM movies m 
where exists (select * from roles r where r.movie_id=m.id and exists(select * from actors a where a.id=r.actor_id and a.gender='F'))
group by  m.year
)t1 
join
(select year,count(m.id) as total from movies m group by m.year) t2
on t1.year=t2.year;


  1. Sletning af tabeller med mysqli_multi_query()

  2. Sådan afrundes tal i SQL

  3. Sikkerhedskopier/eksportér en database fra SSH

  4. Hvordan eksporterer man arabisk tekst fra MySQL-databasen til csv ved hjælp af tudse til MySQL?