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
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