SQL查询合并两个查询或任何其他方法
我有两张桌子 1-用户表 2.餐桌上的朋友SQL查询合并两个查询或任何其他方法,sql,sql-server,Sql,Sql Server,我有两张桌子 1-用户表 2.餐桌上的朋友 users\u tbl列为 user_id int primary key, user_name text sender_id references users_tbl (user_id) int, receiver_id int references users_tbl (user_id), is_accepted bit friend\u tbl列为 user_id int primary key, user_name text se
users\u tbl
列为
user_id int primary key, user_name text
sender_id references users_tbl (user_id) int,
receiver_id int references users_tbl (user_id),
is_accepted bit
friend\u tbl
列为
user_id int primary key, user_name text
sender_id references users_tbl (user_id) int,
receiver_id int references users_tbl (user_id),
is_accepted bit
我需要查询一个特定的@user\u id
,它需要返回所有没有@user\u id
加入好友\u tbl
列的用户
包含数据的表格示例:
用户\u tbl:
user_id user_name
----------------------------
1 tarik
2 alex
3 frank
sender_id receiver_id is_accepted
--------------------------------------
1 2 0
朋友表:
user_id user_name
----------------------------
1 tarik
2 alex
3 frank
sender_id receiver_id is_accepted
--------------------------------------
1 2 0
输入
user_id =1
输出
user_id user_name is_accepted
------------------------------------
2 alex 0
3 frank NULL
我在mvc中使用这个函数,函数获取一个用户id,并返回一个表,其中包含所有加入
is\u accepted
列的用户,该列特定于传入的user\u id从用户表中获取所有用户信息,不带参数user。
左键连接好友表并获取is_接受的列数据
Declare @users_tbl table
(
user_id int primary key,
user_name varchar(100)
)
Declare @friend_tbl table
(
sender_id int,
receiver_id int,
is_accepted bit
)
insert into @users_tbl values(1,'tarik')
insert into @users_tbl values(2,'alex')
insert into @users_tbl values(3,'frank')
insert into @friend_tbl values(1,2,0)
Declare @userId int = 3
Select u.user_id, u.User_name, f.is_accepted from @users_tbl u
Left Join @friend_tbl f on u.user_id = f.receiver_id AND f.sender_id = @userId
Where u.user_id != @userId
谢谢你的回复,但我确实尝试了这个方法,它没有得到我想要的结果如果你把@user\u id=3放进去,它将返回-->alex 0,这不是我需要的,我需要它为null,因为这个用户和@user\u id之间没有朋友请求,thnaks@TarikHusin,我添加了一个新条件f.sender\u id=@userId
。现在它对两个输入都起作用了。@TarikHusin如果它起作用,你能把它作为答案并把这个答案标记为有用的吗。好的,我会的,但是我还有一个问题,如果@user\u id=2,那么用户1接受的应该是0,因为他和1之间有一个朋友请求