我有两个MySQL表,articoli
和tabtranslations
,它们之间的连接应该是微不足道的
SELECT CodArt, Translation FROM articoli LEFT JOIN tabtranslations ON articoli.CodArt = tabtranslations.Chiave
但是,虽然articoli.CodArt
是简单的字符串(A001
,BS15
等等),但字段tabtranslations.Chiave
充满了像<CODART>A001</CODART>
这样的内容标记, <CODART>BS15</CODART>
因此过度复杂的连接 - 我无法修改它......
嗯,有没有办法可以解决这个问题?感谢
答案 0 :(得分:1)
我不知道,但也许这会有用吗?
SELECT CodArt, Translation
FROM articoli
LEFT JOIN tabtranslations ON tabtranslations.Chiave LIKE '%' + articoli.CodArt + '%'
答案 1 :(得分:1)
快速而肮脏的污染就像这样:
SELECT CodArt, Translation
FROM
articoli LEFT JOIN tabtranslations
ON CONCAT('<CODART>', articoli.CodArt, '</CODART>') = tabtranslations.Chiave
答案 2 :(得分:1)
以防万一&#39; CODART&#39;不是唯一可能的标记,您可能希望在连接谓词中使用REGEXP
,如下所示:
select *
from codart c
left join tabtranslations t
on t.chiave REGEXP CONCAT('<.*>', c.codart, '</.*>');
以下是您试用的示例小提琴:http://sqlfiddle.com/#!9/d6c04/1