求教一条sql!关联查询的问题

zhaochunhui 2008-07-09 08:42:07
有两个表 document 和 item 是一对多关联
item 中的pid 为 document 的 id
表1
document

id name
---------
1 a
2 b

表2
item
id pid username value
-------------------------
1 1 aa 20
2 1 bb 10
3 1 cc 10
4 2 ee 12

问题是这样的,我想通过item中的username
找到 对应document中的记录
条件是 : item 中有 一条记录 username='aa' 并且 还得有一条记录 username='bb'
只有这两条件都满足才能找出对应的document记录
如果用一条SQL语句该怎么查(不要存储过程)
--------------
如果 username='?' 这里是不确定的条件应该怎么查
...全文
298 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
chenchang_1209 2009-02-25
  • 打赏
  • 举报
回复
username='aa' and username='bb' 报错
zhiguo2008 2008-07-09
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 zhaochunhui 的回复:]
to:chuifengde(树上的鸟儿)

username='aa' and username='bb'这么查的话 好像不行吧
[/Quote]
zhaochunhui 2008-07-09
  • 打赏
  • 举报
回复
结贴
jane_gong 2008-07-09
  • 打赏
  • 举报
回复
select * from document d inner join item i on d.id=i.pid where i.username=''
zhaochunhui 2008-07-09
  • 打赏
  • 举报
回复
to wgzaaa :
这个是正确的 谢谢
如果 username 的条件很多 岂不是
sql会很复杂
octwind 2008-07-09
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 wgzaaa 的回复:]
item 中有 一条记录 username='aa' 并且 还得有一条记录 username='bb'
select * from #document where id in
(select pid from #item A where username='aa' and
exists(select 0 from #item B where A.pid=B.pid and B.username='bb') )
------------------
1 a
[/Quote]
sqlnewleaner 2008-07-09
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 rhq12345 的回复:]
SQL code
select * from document where id in
(select pid from item where username='aa' and in
(select pid from item where username='bb')
)
[/Quote]
wgzaaa 2008-07-09
  • 打赏
  • 举报
回复
---粘多了一行
select * from document where id in
(select pid from item A where username='aa' and
exists(select 0 from item B where A.pid=B.pid and B.username='bb') )
wgzaaa 2008-07-09
  • 打赏
  • 举报
回复
item 中有 一条记录 username='aa' 并且 还得有一条记录 username='bb'
select * from #document where id in
(select pid from #item A where username='aa' and
exists(select 0 from #item B where A.pid=B.pid and B.username='bb') )
------------------
1 a
zhaochunhui 2008-07-09
  • 打赏
  • 举报
回复
to:chuifengde(树上的鸟儿)

username='aa' and username='bb'这么查的话 好像不行吧
rhq12345 2008-07-09
  • 打赏
  • 举报
回复

select * from document where id in
(select pid from item where username='aa' and in
(select pid from item where username='bb')
)

SQLnewlearner 2008-07-09
  • 打赏
  • 举报
回复
select * from document d join ietm i on d.id=i.pid where username='aa' and username='bb'
chuifengde 2008-07-09
  • 打赏
  • 举报
回复
select * from document where id in (select pid  from item where username='aa' and username='bb')

34,837

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧