我的数据库中有3个表;
InfoTable,
FriendTable,
UsersTable
这些是他们的专栏:
InfoTable
Uid int,
Username varchar(256),
Address varchar(256),
FriendTable
Fid int,
UserName varchar(256),
FriendUserName varchar(256),
Status varchar(10)---Default value:'false'
UsersTable
Uid int,
FirstName varchar(256),
LastName varchar(256),
Username varchar(256)
我必须获得该用户名的朋友的所有信息。我正在使用此查询,
SELECT *
FROM InfoTable
WHERE username IN
(SELECT FriendUserName
FROM FriendTable
WHERE username = @UserName AND status='true')
现在我必须在同一个查询中添加他/她的来自users表的FirstName和LastName。 如何在一个完整的查询中实现这一目标?
答案 0 :(得分:0)
SELECT friend.*
from InfoTable info
inner join FriendTable friend on info.username=friend.FriendUserName
--inner join UsersTable user1 on info.Uid=user1.Uid
--(In case you want columns from UsersTable)
where info.username=@UserName
friend.status='true'
以下是 JOIN
的好文章答案 1 :(得分:0)
SELECT info.*, frnd.*, usr.*
from InfoTable info
INNER join FriendTable frnd on frnd.FriendUserName = info.username
INNER join usersTable usr on usr.Uid=info.Uid
这将为您提供所有表格的所有详细信息。您可以在上述查询中添加条件,例如(and frnd.username=@UserName and frnd.status='true'
)。
答案 2 :(得分:0)
您只需创建一个join
查询,例如
select i.*,f.*,u.* from infitable as i join friendtable as f
on i.username = f.friendusername join usertable as u on i.uid = u.uid
where i.username=@UserName and
f.status='true';
我在这里选择您可以根据自己的需要选择的所有表格值。
有关joins
Click Here
希望它有效。
答案 3 :(得分:0)
尝试
SELECT it.*, ut.FirstName, ut.LastName
FROM InfoTable it
LEFT OUTER JOIN UsersTable ut
ON it.Uid = ut.Uid
WHERE it.username IN
(SELECT FriendUserName
FROM FriendTable
WHERE username = @UserName AND status='true')