繁体   English   中英

SQL Join其中string包含在另一个表字段中

[英]SQL Join where string is contained within another table field

我有几个表,我想加入一些如何。

table 1
**Name** 
A Jones
J Brown
G Smith

Table 2
**fieldA**
~A Jones~G Smith~R Jones~

我想使用表2.fieldA中包含表1.name的逻辑来连接表1到2。

因此结果将是

A Jones
G Smith

这可能吗?怎么样?

对不起它的SQL(2008)

这是可能的 ,使用这样的东西:

SELECT name
FROM table1
    LEFT JOIN table2 ON table2.fieldA LIKE CONCAT('%~', table1.name, '~%')

但是,这是一个坏主意,因为它将非常慢(不能使用索引)并且不是一个稳定的数据库设计。 您最好将数据规范化。

这也适用于MSSQL

SELECT table_1.NAME
FROM table_1
INNER JOIN table_2 ON table_2.fieldA like '%' + table_1.NAME  + '%'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM