SQLite - 左连接与 Substr

SQLite - Left Join with Substr

select distinct substr(value,2,4),summary 
from ticket_custom 
LEFT JOIN ticket On ticket_custom.substr(value,2,4) = ticket.id 
where name = "parent" AND value <> 0

我有一个 table ticket_custom,其中票号前面有一个 hastag(例如“#4567”),但在 table 票中, ticketnumber 保存时没有此主题标签(“4567”)。 我想 left join 这两个 tables 并且想在没有 # 的票号旁边使用 table 票的 "summary" 值。我尝试了上述查询,但出现错误。如何将 substr = 使用不带 # 的 ticketnumber 与左连接结合起来?或者还有其他方法吗?

谢谢!

你应该做 substr(ticket_custom.value,2) 而不是 ticket_custom.substr(value,2,4)(语法不正确,字符串长度不能保证只有 5 个字符)

因此您的查询应如下所示:

select distinct substr(value,2),summary 
from ticket_custom 
LEFT JOIN ticket On substr(ticket_custom.value,2) = ticket.id 
where name = "parent" AND value <> 0

这是函数 substr():

的正确语法
On substr(ticket_custom.value,2,4) = ticket.id 

On substr(ticket_custom.value,2) = ticket.id 

if ticket_custom.value 仅包含 5 个字符。
在这种情况下(只有 5 个字符)您可以使用 replace():

On replace(ticket_custom.value, '#', '') = ticket.id 

或简单地:

On ticket_custom.value = '#' || ticket.id