我的数据库中有两个表。
1) User Table
id username password logo email
1 admin admin NULL 1
2 support support NULL NULL
3 test test NULL NULL
2) Link Account Table
ID AccountID LinkAccountID
1 1 2
现在,如果我选择accountid 1的用户名,那么它将返回我的管理员和支持 同样的方式,如果我选择accountid 2的用户名,那么它也将返回管理员和支持 如果我选择带有accountid 3的用户名,那么它将仅返回测试
如果在链接帐户表帐户ID为1或linkaccountid为1且将返回两个id ,则反之亦然提前致谢
此致
Amit Vyas
答案 0 :(得分:3)
Select u.id,u.Name
from user u
left join
(
Select AccountID as AID , LinkAccountID as sec from Account
union
Select LinkAccountID as AID,AccountID as sec from Account
) a
on a.AID=u.ID
where @SearchUser in (Coalesce(a.Aid,u.id),Coalesce(a.Sec,u.id))
答案 1 :(得分:1)
假设您可以设法将@SearchID
更改为您要搜索的ID,那么这是一种方法
select * from users a
where a.id = @SearchID
or
a.id in (
select b.AccountID from link_account b where b.LinkAccountID = @SearchID
union
select b.LinkAccountID from link_account b where b.AccountID = @SearchID);
我已经尝试了它并且它正在工作。