假设,我们有两个表:-分支和用户
分支机构:
BranchCode | BranchName | IsActive |
----------------------------------------
1 | aaa | 0 |
----------------------------------------
2 | bbb | 1 |
---------------------------------------
3 | ccc | 0 |
用户:
UserId | Name |
-------------------
333 | jjjj |
-------------------
444 | kkkk|
-------------------
我们希望将结果选择为
MemberId
--------
2 - 333
--------
2 - 444
-------
这意味着,我们为具有isactive = 1的用户使用分支代码
由于表没有关系,我在检索结果集时遇到问题,有没有办法按预期方式获得结果?
答案 0 :(得分:2)
使用CROSS JOIN
:
SELECT b.branchcode, u.UserId
FROM brach b CROSS JOIN
(SELECT UserId FROM User u) u
WHERE b.IsActive = 1;
答案 1 :(得分:1)
SELECT CONCAT(b.branchcode,' - ', u.UserId) MemberId FROM User u,brach b WHERE b.IsActive = 1;
答案 2 :(得分:0)
您可以将RIGHT OUTER JOIN
用作:
select concat(b.branchcode,'-',u.userid) as MemberId
from branch b
right outer join "user" u
on b.isactive = 1;
MemberId
--------
2 - 333
2 - 444
p.s。用户是MSSQL中的保留关键字,因此我改用了表"user"
。