第二个表

时间:2016-06-09 11:16:17

标签: sql sql-server

我正在努力学习一些SQL逻辑并想知道你是否可以提供帮助?

我需要从表“角色”获取 ID 的列表,其中 emailEnabled为真,然后我需要使用这些ID roleid列上的表“用户”以获取其电子邮件地址,返回这些以逗号分隔的列表

我知道我们需要在这里使用循环,但这不是我的强项。

如果您需要任何进一步的信息,请与我们联系。

2 个答案:

答案 0 :(得分:2)

我不建议在SQL中生成逗号分隔列表。以记录方式获取您需要的数据,并在程序逻辑中处理其余数据。

您可以获得所需的数据

select users.email
from users
join roles on roles.id = users.roleid
where roles.emailEnabled = 1

答案 1 :(得分:0)

您可以在SQL中执行此操作,但我可能会建议不要使用它;

DECLARE @tmp varchar(100)
SET @tmp = ''
SELECT @tmp = COALESCE(@tmp + ',','') + (SELECT u.emailAddress FROM Roles r LEFT JOIN Users u ON r.roleid = u.roleid WHERE r.emailEnabled = 'true')

SELECT @tmp =  RIGHT(@tmp,LEN(@tmp)-1)