+-

我有一个查询从一个表中读取大约342条记录,并检查另一个表中是否存在大约32000条记录的记录.为此,我使用了’NOT IN’条件,并且在’NOT IN’条件下更快地运行查询的最佳方法是看起来这个过程想要占用我的生命!
SELECT fname,lname,position
FROM employees
WHERE employees.id NOT IN(select projects.empid where projects.id='BRS213F-013')
我到底该怎么办?
最佳答案
如何使用LEFT JOIN,
SELECT a.fname, a.lname, a.position
FROM employees a
LEFT JOIN projects b
ON a.ID = b.emp_ID AND
b.id = 'BRS213F-013'
WHERE b.emp_ID IS NULL
确保Employees.ID和projects.emp_ID必须在其上定义键才能提高性能.
要使Employees.ID成为主键(如果尚未实现),
ALTER TABLE Employees ADD CONSTRAINT tb_pk PRIMARY KEY (ID)
使projects.emp_ID成为一个外键,如果尚未实现,则引用Employees.ID
ALTER TABLE Projects
ADD CONSTRAINT tb_fk FOREIGN KEY (EmpID) REFERENCES Employees (ID)
点击查看更多相关文章
转载注明原文:mysql – 使用’NOT IN’条件查询太慢了 - 乐贴网