我希望我能解释清楚。如果不清楚,请询问
我有一个查询来检索用户可以访问某些实体的数据。
基本上在我的用户表中有一列,用户可以使用一个或多个逗号分隔的整数。以下是一些示例:
表#1
User.query.join(Device, User.id == Device.id)\
.add_columns(User.id, User.name, Device.private_token)\
.filter_by(User.email == data['email']).all()
我的秒表有一个非常相似的字段。 如果我在第二个表中有类似以下记录:
表#2
User #1 value: ,1,
User #2 value: ,1,3,5,12,
User #3 value: ,12,
User #4 value: ,14,3,5,
User #5 value: ,14,
因此,我要实现的目标是从表#1中获取用户#2的值,并且我想获取表#2中的所有用户,其中它们的任何值都包含在用户#2的值中。 由于用户#2具有,1、3、5、12,因此我应该从表2中获得结果,如下所示:
User #1 value: ,3,
User #2 value: ,3,
User #3 value: ,3,
User #4 value: ,10,
User #5 value: ,11,5,12,
User #6 value: ,5,12,
我当前正在使用以下内容:
User #1
User #2
User #3
User #5
User #6
这似乎并没有产生我想要的结果。 如果表#1中只有1个值(例如,3),而不是多个值,那么这将非常有用。
答案 0 :(得分:0)
您可以尝试以下查询以获得预期结果。
SELECT DISTINCT a.Name
FROM TABLE2 a,
dbo.Split((SELECT Agency
FROM TABLE1
WHERE UserID = 2),',') AS b
WHERE a.Agency LIKE '%,'+b.Slit_Func_ColumnName+',%'
使用SPLIT
函数。