我有两张桌子.
表A.
Column 1 Column 2
CT 3C 10.5 -23.12
OT 5A 11.2 -24.5
Run Code Online (Sandbox Code Playgroud)
表B.
Column 1 Column 2
PRIM 12.3 -24.51, 10.5 -23.12, 61.24 -78.23
SEC 8.7345 -46.1934, 10.49 -49.1834
TERT 18.98 -28.12, 11.23 -24.78, 1.45 -24.11, 11.2 -24.5
Run Code Online (Sandbox Code Playgroud)
加入后的结果表:
Column 1 Column 2 Column 3 Column 4
CT 3C 10.5 -23.12 PRIM 12.3 -24.51, 10.5 -23.12, 61.24 -78.23
OT 5A 11.2 -24.5 TERT 18.98 -28.12, 11.23 -24.78, 1.45 -24.11, 11.2 -24.5
Run Code Online (Sandbox Code Playgroud)
有没有办法在不将表B中的"第2列"的内容拆分成单独的列的情况下进行此匹配?"表B的第2列"中的内容由","分隔.
10.5 -23.12应与12.3 -24.51,10.5 -23.12,61.24 -78.23相匹配,因为它包含在其中的值列表中.
我不能将它们拆分成单独的列,因为在某些情况下,它中有多达300个不同的值,以','分隔
SELECT a.column1, a.column2,
b.column1, b.column2
FROM TABLE_A a
JOIN TABLE_B b ON FIND_IN_SET(a.column2, b.column2) > 0
Run Code Online (Sandbox Code Playgroud)
非规范化数据只有在确定必要之后才能存储为性能改进- 而不是之前.
在TABLE_A和TABLE_B之间需要一个多对多表来保存逗号分隔列表中表示的关系.