设有两张表:tb_user,tb_products 用户表和用户产品表。
用户表的主要结构:tb_user(userid int,userName varchar(20))
产品表的主要结构:tb_products(productID int,productName varchar(20),price numeric(18,2),userid int)
产品表与用户表是多对一关系。
现要从用户表中将所有用户查询出来并显示每个用户的一个产品,这个产品随便是该用户的哪一个都行。
返回表结构如下:
userID userName productID productName price
1 张三 54 洗发水 25.6
2 李四 88 香皂 5.5
.............................
Code
declare @tb_user table(userid int,userName varchar(20))
insert @tb_user
select 1,'张三'
union all
select 2,'李四'
declare @tb_products table(productID int,productName varchar(20),price numeric(18,2),userid int)
insert @tb_products
select 54,'洗发水',25.6,1
union all
select 54,'洗发水1',22.6,1
union all
select 88,'香皂',5.1,2
select identity(int,1,1)id,*
into #temp from @tb_products
select a.userid,username,productid,productName,price
from @tb_user a
left join
(
select * from #temp a where 0=(select count(1) from #temp where productid=a.productid and id<a.id)
)b
on a.userid=b.userid
drop table #temp
SELECT us.*,pd.productName FROM tb_user us
LEFT JOIN tb_products pd ON us.userid = pd.userid
WHERE pd.productName NOT NULL AND pd.productName != ''