请教一个sql查询的问题。 - MS-SQL Server / 应用实例
有两表(T_CAR)
{
CAR_ID INT IDENTITY
CUST_ID INT
}
(T_CUSTOMER)
{
CUST_ID INT IDENTITY
CUST_NAME VARCHAR(100)
}
现在要查询表(T_CAR)中字段CUST_ID不存在表(T_CUSTOMER)的数据
已知查询sql有两个
一)
SELECT * from T_CAR WHERE CUST_ID NOT IN (SELECT CUST_ID from T_CUSTOMER)
二)
SELECT * from T_CAR C LEFT JOIN T_CUSTOMER R ON C.CUST_ID=R.CUST_ID WHERE R.CUST_ID IS NULL (已知CUST_ID在表T_CAR是唯一的。)
请问。以上两种查询sql,性能更好(在如下三种情况下:1>表T_CUSTOMER的数据量很大,2>表T_CAR的数据量很大, 3>两表的数据量都很大)?
上面两个相比,第二个查询效率会高
学习。
select *
from car
left join customer c on car.cust_id=c.cust_id
where c.cust_id is null
相关问答:
我一个项目,有个插入操作,具体是这样的:
我有进货信息表。在出货时选择相应的进货信息,输入数量,选择部门后,点保存按钮,由于网络延时,点一下没有反映,于是用户就又点一下,导致一次插入了两条记录:
例:
......
可能因为工作的原因 接触数据库这块比较少,之前都是做程序这块,数据库这块都有专门的人来做 分工都很明细 所以对数据库这一块完全不了解。前段时间 去面试了几家公司 几乎都是在数据库这块挂掉的 连个简单的SQ ......
现在有一个部门表dept(部门名称,部门号。。)有一个人员表emp(姓名,人员编号,职位,薪资,部门)
emp表中的内容是这样的:
a 1 工程师 3000 软件部
b 2 普通员工 2000 硬件部
c 3 工程师 4000 硬件部
d ......