我在两个不同的表id
和table1
中有一个名为table2
的列,它始终包含30个字符。我想从table1
和table2
中进行选择,其中两个表中id
列的第6到第30个字符是相同的。两个表中的id
列都是unique
。
答案 0 :(得分:2)
select *
from table1
join table2 on substring(table1.id, 6) = substring(table2.id, 6)
答案 1 :(得分:2)
你可以在没有正则表达式的情况下做到这一点,我喜欢这个正确的函数(返回n个最右边的字符):
SELECT *
FROM table1 t1
JOIN table2 t2
ON RIGHT(t1.id,25) = RIGHT(t2.id,25)
实际上,在第二个想法中,SUBSTRING
方式在这种情况下可能更好,以防万一行以较短的ID结束。
答案 2 :(得分:0)
试试这个
SELECT *
FROM table1
JOIN table2 ON SUBSTRING(table1.id,7) = SUBSTRING(table2.id,7);