我有兩個表,讓我們把它叫做表A和表B.它們看起來像:加入用逗號分隔字符串表(使用WHERE)
A.col1 A.colX B.colY
1 123 123
2 234, 123 234
3 2, 52352 2
52352
我所要做的就是JOIN
他們,最有可能使用WHERE
,因爲我的環境中不支持非Equi加入。我遇到表A
的問題,其中數字是字符串。我試圖與解決方案:
SELECT...
FROM A, B
WHERE A.colX LIKE concat('%', B.colY, '%')
,但它不正確,例如價值2
從B.colY
出現在每個字符串表A.colX
工作。
在年底例子就是我想實現:
output
1 123 -------> 123
2 234, 123 --> 234
1 234, 123 --> 123
3 2, 52352 --> 2
3 2, 52352 --> 52352
你有任何想法?
第一 - 這肯定是不好的表架構設計。而不是像逗號分隔的列表,如'A.colX'中的'234,123',它應該是將這些值保存在不同記錄'234','123'(當然還有一個外鍵返回到表A)的相關表。有了這個單獨的表格,你可以擺脫複雜的連接條件。 –
B.colY的數據類型? – jarlh
我同意你的看法,但是這個數據來自excel文件上傳到數據庫。這兩個表格是Excel中獨立的電子表格。 – Wasciu