我有两个表让我们说 “表1” 和 “表2”如何使用 '不在' 和 'IN' 在同一时间在查询
表1
ID AccountId BranchId otherColumn
----------- ---------- ---------- -----------
1 15 58 data
2 22 62 data
3 31 89 data
4 49 45 data
. . . .
. . . .
. . . .
. . . .
. . . .
表2
ID fromAccount toAccount ExcludeAccount IncludeAccount FromBranch ToBranch IncludeBranch ExcludeBranch
----------- ---------- ---------- ----------- ---------- --------- ------------ -------------- ------------
1 1 90 89,34,3 101 30 100 205,207,250 35,40
1 5 67 90 22 50 70,90 20
2 7 4 3 5 200
2 1 5 7 10 16 9
3 5 89 6,7 200 55 243 34 35,200,201,234
现在我想选择所有数据从表1使用表达式从表1
我有功能的逗号分隔的文本转换成表格
select data from dbo.split('23,45,2', ',')
这将返回
data
------
23
45
2
我所需的输出为第1行是
ID AccountId BranchId otherColumn
----------- ---------- ---------- -----------
. 1 . data
. 2 . data
. 4 . data
. 5 . data
. 6 . data
. 7 . data
. 8 . data
. . . .
. . . .
. 33 . .
. 35 . .
. . . .
. 88 . .
. 90 . .
. 101 . .
. . 30 .
. . 31 .
. . . .
. . 34 .
. . 36 .
. . . .
我已创建查询以获取与这两个表格的关系的数据Ë但它始终没有返回行
这里是我的查询
select * from Table1
inner join Table2 on Table1.AccountId between Table2.fromAccount and Table2.toAccount
and Table1.AccountId not in (select data from dbo.split(Table2.ExcludeAccount, ','))
and Table1.AccountId in (select data from dbo.split(Table2.IncludeAccount, ','))
and Table1.BranchId between Table2.FromBranch and Table2.ToBranch
and Table1.BranchId not in (select data from dbo.split(Table2.ExcludeAccount, ','))
and Table1.BranchId in (select data from dbo.split(Table2.IncludeAccount, ','))
我的问题是,为什么总是没有返回数据是什么东西错在我的查询或我在错误的方式
@Ken White我被选为MySQL,因为Stack Overflow建议我选择MySQL – Dexter
不。StackOverflow建议您添加**相关的DBMS **标记(*,如MySQL或SQL Server *),只添加SQL。它没有**建议你随机获取不适用于你的问题的标签。再次,仅使用**实际应用于您的问题的标签 - 它在处理SQL问题时会产生很大的差异。 –
当您决定将csv存储在列中时,您走进了这个列表。 http://stackoverflow.com/questions/3653462/is-storing-a-delimited-list-in-a-database-column-really-that-bad/3653574 – e4c5