使用“包含”作为连接表的方法?

时间:2016-02-09 14:29:11

标签: oracle join primary-key contains

表格一中的主键用于表格2 ,但会被修改为:

表1 中的主键列:123abc

表格2 中的列:123abc_1

即。使用密钥但随后添加_1以在表2 列中创建唯一值

我有没有办法join两个表,2列中的数据不相同但非常相似。我可以这样做:

SELECT *
FROM TABLE1 INNER JOIN 
TABLE2
ON TABLE1.COUMN1 contains TABLE2.COLUMN2;

即。检查表1中的值 表2中的值?

1 个答案:

答案 0 :(得分:2)

您只能检查第2列的第一部分;例如

SELECT *
FROM TABLE1 INNER JOIN TABLE2
ON INSTR(COLUMN2, COLUMN1) = 1 

ON COLUMN2 LIKE COLUMN1 || '%' 

但是,以这种方式保留外键可能非常危险,不要考虑大型数据库的性能。

您最好使用表2中的不同列来存储表1的键,甚至添加约束。