选择没有关系的记录

Jam*_*mes 3 mysql

我有三张桌子

  • tbl_part - 包含索引的部件列表
  • tbl_product - 包含产品的索引列表
  • tbl_part_product - 包含零件和产品之间的关系.

我想选择与产品无关的所有零件,但是有大约20k +零件,我的查询太慢了.有谁知道如何实现这一目标的更好方法?

SELECT * FROM tbl_part AS p
LEFT JOIN tbl_part_product AS pp ON pp.ref_part_id = p.part_id
WHERE pp.ref_part_id IS NULL
Run Code Online (Sandbox Code Playgroud)

Ste*_*ley 5

听起来像是INDEX问题,通过修改它,您的查询将不会比现有的更快.

如果你还没有索引ref_part_id,试试这个,它应该会加快你的查询速度:

ALTER TABLE tbl_part_product  ADD INDEX (ref_part_id);
Run Code Online (Sandbox Code Playgroud)