首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

关于2表关联的SQL 语句!该如何处理

2012-01-20 
关于2表关联的SQL 语句!表A:IDfather_name1张三2李四3王五.............表B:IDchild_nameage1w131t202s183

关于2表关联的SQL 语句!
表A:
ID     father_name      
1         张三
2         李四
3         王五
.............


表B:
ID     child_name       age
1           w                     13
1           t                     20
2           s                     18
3           q                     31
.................

现在要关联2表查询   满足以下条件的记录:
只有一个child   的   且年龄   大于   30岁的   记录。
显示记录应该是:
ID     father_name     child_name       age
3             王五                       q                 31

SQL   应该怎么写呢?(尽量找简洁点的方法)

[解决办法]
select * from A
inner join
(
select max(ID) as ID, child_name from B
where age> 30
group by child_name
having count(*)=1
)B on A.ID=B.ID

[解决办法]
select a.id,farther_name,child_name,age from A,(select id from B where age> 30 group by id having count(id)=1) B where A.id=b.ID;
[解决办法]
select A.id,A.father_name,B.child_name,B.age from A inner join B
on A.id = B.id
where B.age > 30 and (select count(*) from B where B.id = A.id) = 1

热点排行