我有两个数据表,如
T1:
key1 value
ac ..
abc ..
T2:
key2 value2
ab ..
dd ..
现在,我想在key1和key1上加入T1和T2,条件是key2 key1的子串。如何编写高效的SQL查询来完成这项工作?
答案 0 :(得分:1)
你不能真正为此编写高效的 SQL。你可以表达为:
select t.*, t2.*
from t1 join
t2
on t1.key1 like concat('%', t2.key2, '%');
(注意:大多数数据库都支持字符串连接运算符,例如||
或+
。)
这样效率不高 - 通常会引用索引。对于子字符串操作来说,这是不可能的。
如果表现非常重要,我建议您提出另一个问题,包括样本数据和您需要的结果说明。