Как получить результат для этого условия? - PullRequest
0 голосов
/ 25 сентября 2018

Предположим, у нас есть две таблицы: - Ветвь и Пользователь

Ветвь:

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

У меня возникла проблема с получением набора результатов, так как таблица не имеет отношения, есть ли способ получить ожидаемый результат?

Ответы [ 3 ]

0 голосов
/ 25 сентября 2018
SELECT CONCAT(b.branchcode,' - ', u.UserId) MemberId FROM User u,brach b WHERE b.IsActive = 1;
0 голосов
/ 25 сентября 2018

Вы можете использовать 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

ps пользователь является зарезервированным ключевым словом в MSSQL, поэтому я использовал таблицу "user".

Демонстрация SQL Fiddle

0 голосов
/ 25 сентября 2018

Использование CROSS JOIN:

SELECT b.branchcode, u.UserId   
FROM brach b CROSS JOIN
     (SELECT UserId FROM User u) u
WHERE b.IsActive = 1;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...