12 回答

TA貢獻1863條經驗 獲得超2個贊
select unamefrom dbo.UserInfowhere uid in ( select uid from (select count(1) as pcount,uid ?from (select distinct uid,pid from Buyinfo) a group by uid) b inner join (select count(1) as pcount from Product) c on c.pcount = b.pcount)?

TA貢獻1725條經驗 獲得超8個贊
提供個思路:
?? 1) 將購買信息表根據Uid進行分組,同時去除重復購買信息
?? 2) 將上述結果Count下和產品表的Count對比,相等則說明用戶購買了所有商品
?? 3) 最后將用戶信息表的uid和第二步結果的uid對比
select u.uid from UserInfo as u where u.uid = (select uid from? buyinfo as b where uid=(select top 1 uid from buyinfo where uid=b.uid) group by uid having Count(uid)= (select Count(pid) from product))

TA貢獻1856條經驗 獲得超11個贊
但是你的語句有問題
最后綜合了
select uname from UserInfo u join(
select uid from (select uid,pid from Buyinfo group by uid,pid)a group by uid having count(pid)=(select count(1)from Product))tu
on u.uid=tu.uid

TA貢獻1856條經驗 獲得超17個贊
看看我這個
? SELECT u.uid '用戶id',u.uname '用戶' FROM userinfo u
INNER JOIN
???(SELECT uid? FROM buyinfo
???GROUP BY? uid
???HAVING COUNT(DISTINCT pid)=(SELECT COUNT(pid)from product)) AS f
ON u.uid=f.uid
- 12 回答
- 0 關注
- 702 瀏覽
添加回答
舉報