CREATE TABLE A
(
A_ID int primary key not null,
A_Name varchar(50)
--......
)CREATE TABLE B
(
B_ID int primary key not null,
A_ID int
--......
)
表A与表B是一对多关系
要求查询表A的所有字段,条件是A_ID在表B中出现次数不为零的所有记录
求查询效率最好的语句,我的语句如下,但是效率不高!谢谢SELECT * FROM A WHERE (SELECT COUNT(*) FROM B WHERE A.A_ID=B.A_ID)>0
(
A_ID int primary key not null,
A_Name varchar(50)
--......
)CREATE TABLE B
(
B_ID int primary key not null,
A_ID int
--......
)
表A与表B是一对多关系
要求查询表A的所有字段,条件是A_ID在表B中出现次数不为零的所有记录
求查询效率最好的语句,我的语句如下,但是效率不高!谢谢SELECT * FROM A WHERE (SELECT COUNT(*) FROM B WHERE A.A_ID=B.A_ID)>0
解决方案 »
- 关于从手机模拟器访问pc端sql server数据库的问题
- 求SQL2005通用的高效分页存储过程(要支持UNION和into #a1之类的)
- 大家救命阿!UPDATE出错,导致数据改写,如何恢复?
- 为什么我的SQL不写日志了?急啊!
- 求一句分组统计
- why:The value you entered is not consistent with the data type of length of the column
- 求一个SQL语句,以前没碰到过
- 请教 mssql 数据表 如何合理创建索引,是分开建还是合在一起建,见下面条件
- 请问数据库中立方体和数据仓库,数据集市的概念是什么
- 在写程序时应该注意什么问题才能避免SQL注入式攻击?
- 关于我的win7 64位的系统呀,装不了SQL
- 数据库表的问题
select a.*
from a left join b on a.a_id = b.a_id
where b.b_id is null
select a.*
from a left join b on a.a_id = b.a_id
where b.b_id is not null
select a.*
from a left join b on a.a_id = b.a_id
where b.b_id is null连查比用in效率好些
a.*
from
a left join b on a.a_id = b.a_id
where
b.b_id is not null--连接字段加索引
WHERE EXISTS(SELECT TOP(1) 1 FROM B WHERE A_ID = A.ID)
from a left join b on a.a_id = b.a_id
where b.b_id is not null