【发布时间】:2015-08-03 05:37:18
【问题描述】:
我需要编写一个查询来检索符合以下条件的值,
从 UserTable 中选择我 (me@gmail.com) 不是朋友的用户
这是我的表格格式:
我的电子邮件在 UserID 中注明,我的朋友在 FriendID 栏中注明。我需要从 UserTable 中选择未在 FriendsTable 中列为朋友的用户。似乎是一个简单的查询,但我无法弄清楚。这是我尝试过的:
PS:我只是为了澄清而写了这个,因此我不想想写一个参数化查询。我不打算分发这个。
SELECT * From UserTable WHERE Email NOT LIKE '% (Select FriendsTable.FriendID From FriendsTable Where FriendsTable.UserID='me@gmail.com') %'
编辑
jpw 的查询成功了。但是,我如何从他的解决方案的查询中检索一个随机行?
这不起作用:
select TOP 1 * from UserTable where UserTable.Email <> '" + email + "' and Email not in (select case when FriendsTable.UserID = '" + email + "' then FriendsTable.FriendID else UserID end from FriendsTable where '" + email + "' in (UserID, FriendID)); ORDER BY NEWID()
【问题讨论】: