以下是3表的加入:
在设备编号上 - 始终是一个数字,只需加入2列
关于插槽号码 - 第一个案例" Logs.Slot"是数字,第2和#34; slotlist2"是逗号分隔的列表。
在Slot上--Def_Instances.slot就像Logs.Slot(意思是它的一个数字并且被Logs.Slot所引用)但是从它减去了Offset +1的值。
现在,我想在使用SQL lite
时获得以下语法select Logs.*, Def_Instances.*, (Def_Instances.slot + Def_Instances.Offset + 1) as A from Def_Instances
inner join Logs ON Logs.Column1 = Def_Instances.DeviceNumber
and (', ' || RTRIM(Def_Instances.slotlist2) || ',') LIKE '%, '|| Logs.Slot ||',%'
and (', ' || RTRIM(Def_Instances.A) || ',') LIKE '%, '|| Logs.Slot ||',%'
那个人告诉我htere是一个错误。
当我在玩耍的时候。它或者不识别+符号或A列,或者据我记得还有一个我之前收到的错误。
提前致谢
答案 0 :(得分:0)
您无法从select
子句中的where
子句重用列别名。不要忘记,SQL首先在输出(运行where
子句)之前删除行(运行select
子句)。
您必须将表达式放在where
子句中。并且可能会进行一些类型转换,因为它在某一点似乎是数字,然后你开始像字符串一样处理它。