求助:这个SQL 如何写

sljz 2010-08-02 11:10:17
表1:用户所属小组

NO 用户 小组ID
------------------------
1 | 用户A | 1 |
------------------------
2 | 用户A | 2 |
------------------------
3 | 用户A | 5 |
------------------------
4 | 用户B | 1 |
------------------------
5 | 用户B | 2 |
------------------------

表2:小组信息

NO 名称 信息
------------------------
1 | 小组1 | xxxxx |
------------------------
2 | 小组2 | xxxxx |
------------------------
3 | 小组3 | xxxxx |
------------------------
4 | 小组4 | xxxxx |
------------------------
5 | 小组5 | xxxxx |
------------------------


现在需要查询 任意一个用户 所有参加的兴趣小组

例如查询 B 用户,结果:

NO 用户 小组名 信息
---------------------------------
1 | 用户B | 小组1 | xxxxxx |
---------------------------------
2 | 用户B | 小组2 | xxxxxx |
---------------------------------
...全文
108 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
天-笑 2010-08-03
  • 打赏
  • 举报
回复

---测试数据---
if object_id('[A]') is not null drop table [A]
go
create table [A]([NO] int,[用户] varchar(5),[小组ID] int)
insert [A]
select 1,'用户A',1 union all
select 2,'用户A',2 union all
select 3,'用户A',5 union all
select 4,'用户B',1 union all
select 5,'用户B',2
if object_id('[B]') is not null drop table [B]
go
create table [B]([NO] int,[名称] varchar(5),[信息] varchar(5))
insert [B]
select 1,'小组1','xxxxx' union all
select 2,'小组2','xxxxx' union all
select 3,'小组3','xxxxx' union all
select 4,'小组4','xxxxx' union all
select 5,'小组5','xxxxx'

---查询---
select b.no,a.用户,b.名称 as 小组名,b.信息
from a
join b on a.小组ID=b.NO
where a.用户='用户B'

---结果---
no 用户 小组名 信息
----------- ----- ----- -----
1 用户B 小组1 xxxxx
2 用户B 小组2 xxxxx

(2 行受影响)


赞一个
狼王_ 2010-08-03
  • 打赏
  • 举报
回复
每天回帖即可获得10分可用分!
幸运的意外 2010-08-03
  • 打赏
  • 举报
回复
用一次内连接就可以了,代码引用树人大哥的。

select b.no,a.用户,b.名称 as 小组名,b.信息
from a
join b on a.小组ID=b.NO
where a.用户='用户B'
永生天地 2010-08-03
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 sqlcenter 的回复:]
SQL code
select * from 用户所属小组 a inner join 小组信息 b on a.小组ID = b.NO where a.用户 = '用户B'
[/Quote]
看上去是这个意思
luodx1021 2010-08-02
  • 打赏
  • 举报
回复
试试:

SELECT 表2.NO, 表1.用户, 表2.名称, 表2.信息
FROM 表1, 表2
WHERE 表1.小组ID = 表2.NO
AND 表1.用户 = 'B用户'
duanzhi1984 2010-08-02
  • 打赏
  • 举报
回复
这些都是基本的语法,要加油学习哦。。。。

共勉
duanzhi1984 2010-08-02
  • 打赏
  • 举报
回复
select b.no,a.用户,b.名称 as 小组名,b.信息
from a
join b on a.小组ID=b.NO
where a.用户='用户B'
duanzhi1984 2010-08-02
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 josy 的回复:]
SQL code
---测试数据---
if object_id('[A]') is not null drop table [A]
go
create table [A]([NO] int,[用户] varchar(5),[小组ID] int)
insert [A]
select 1,'用户A',1 union all
select 2,'用户A',2 union all
sel……
[/Quote]

夜猫子
百年树人 2010-08-02
  • 打赏
  • 举报
回复
---测试数据---
if object_id('[A]') is not null drop table [A]
go
create table [A]([NO] int,[用户] varchar(5),[小组ID] int)
insert [A]
select 1,'用户A',1 union all
select 2,'用户A',2 union all
select 3,'用户A',5 union all
select 4,'用户B',1 union all
select 5,'用户B',2
if object_id('[B]') is not null drop table [B]
go
create table [B]([NO] int,[名称] varchar(5),[信息] varchar(5))
insert [B]
select 1,'小组1','xxxxx' union all
select 2,'小组2','xxxxx' union all
select 3,'小组3','xxxxx' union all
select 4,'小组4','xxxxx' union all
select 5,'小组5','xxxxx'

---查询---
select b.no,a.用户,b.名称 as 小组名,b.信息
from a
join b on a.小组ID=b.NO
where a.用户='用户B'

---结果---
no 用户 小组名 信息
----------- ----- ----- -----
1 用户B 小组1 xxxxx
2 用户B 小组2 xxxxx

(2 行受影响)
百年树人 2010-08-02
  • 打赏
  • 举报
回复
select b.no,a.用户,b.名称 as 小组名,b.信息
from a
join b on a.小组ID=b.NO
where a.用户='用户B'
SQLCenter 2010-08-02
  • 打赏
  • 举报
回复
select * from 用户所属小组 a inner join 小组信息 b on a.小组ID = b.NO where a.用户 = '用户B'
SQLCenter 2010-08-02
  • 打赏
  • 举报
回复
select * from 用户所属小组 a inner join 小组信息 b on a.小组ID = b.NO

34,576

社区成员

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

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