Given m2m relation: items-categories I have three tables:
select distinct `user_posts_id` from `user_posts_boxes`
where `user_id` = 5
and
exists (select * from `box` where `user_posts_boxes`.`box_id` = `box`.`id`
and `status` in ("A","F"))
order by `user_posts_id` desc limit 200;
select distinct `user_posts_id` from `user_posts_boxes`
INNER JOIN box on box.id = `user_posts_boxes`.`box_id` and box.`status` in ("A","F")
and box.user_id = 5
order by `user_posts_id` desc limit 200
I tried with both query, But above query works faster for me.Both tables having large dataset. Almost "user_posts_boxes" has 4 million and boxes are 1.5 million.
First query took = 0.147 ms 2nd Query almost = 0.5 to 0.9 MS
But my database tables are inno db and having physical relationships are also applied.
SO I should go for exists but it also depends upon how you have your db structure.