sql - SQL 通过查询外键来查找表条目
问题描述
我有4个表如下:
- 公司:
companyid, name
- 员工:employeeid、name、companyid
- 工作:
jobid, title, companyid
- LinkEmpolyee职位:
employeeid, jobid
我想识别无效条目LinkEmpolyeeJob
员工和工作来自不同公司的表中识别无效条目。
我想避免像下面这样的查询,因为它太慢了:
select *
from LinkEmpolyeeJob
where (employeeid, jobid) not in (select a.employeeid, b.jobid
from Employees a, Jobs b
where a.companyid = b.companyid);
有人帮忙吗?谢谢!
解决方案
尝试使用join
s:
select e.*, j.*
from LinkEmpolyeeJob lej join
Employees e
on lej.employeeid = e.employeeid join
Jobs j
on lej.jobid = j.jobid
where e.companyid <> j.companyid
推荐阅读
- bash - 以两个单词为一组剪切文本
- php - Casper PHP 扩展 - 安装过程中的错误
- ios - 我的应用程序在我的 iPhone 中安装几天后崩溃
- laravel - Laravel Blade:在刀片文件中添加 javascript 的最佳实践是什么?
- xamarin.forms - OpenTok Xamarin 表单
- python - 模块化猜猜游戏循环
- java - 在多项目 gradle 设置中引用子项目的主类
- html - 自动更改数组中元素的类型
- python-3.x - 如何通过 pandas `df.to_sql()` 在已创建的数据库表中插入值
- ios - 如何修复崩溃“UIStatusBarDisplayItemState updatePlacement”?