请教一个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 ......
表数据
COL1 COL2 COL2 COL4 COL5
----------------------------------------------------------------------------------------------
2010-05-05 00:00 ......
通过NAME字段条件查询一个数据表,假设我有100个姓名,有以下两个方法,
方法1:
把100个Name 组成一个SQL语句,比如 Select * from tmp_table where Name='张三' or Name ='李四' Or ...Or Name='第一百个姓名'
......
select o_customer,o_price from orders having o_price >=avg(o_price)
select o_customer,o_price from orders where o_price >=(select avg(o_price) from orders)
我感觉没有区别啊,怎么在mysql会有 ......