sql - 在 JOIN 查询中使用 LIKE

标签 sql join left-join sql-like

我有两个单独的数据表。

这是表1:

Customer Name  Address 1       City     State  Zip
ACME COMPANY   1 Street Road   Maspeth  NY     11777

这是表2:

Customer   Active Account   New Contact
ACME       Y                John Smith

我正在使用 JOIN 运行查询,其中仅包含两个表中的联接字段相等的行

我正在加入 Table1 中的 Customer NameTable2 中的 Customer。显然不匹配。我想要做的是显示每个表中前 4 个字符匹配的结果,以便我得到结果或匹配。使用 LIKELEFT 可以吗?

最佳答案

是的,这是可能的。 但我怀疑表 2 中的每个名称只有 4 个字母,因此这里有一个解决方案,其中 table2 中的名称是 table1 中名称的开头。

% 连接字符串。它是“任意或无”的占位符/通配符。

SELECT
*
FROM
Table1
INNER JOIN Table2 ON Table1.CustomerName LIKE CONCAT(Table2.Customer, '%');

不同 DBMS 之间的字符串连接可能会有所不同。

关于sql - 在 JOIN 查询中使用 LIKE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27550538/

相关文章:

mysql - 有人可以解释为什么这个左外连接会这样吗?

python - 如何在 python/pandas 中进行左内连接?

mysql - 显示所有订购的产品名称列表以及客户的名字和姓氏

sql - SQL 关键字 "ISABOUT"[已弃用?] 应该替换为什么?

mysql - 调整数据库结构或 SQL 查询以允许特定输出

mysql - 连接 2 个 Select 语句并将第二个语句限制为第一个语句的结果

sql - Postgres 中的模糊分组

javascript - 我尝试编写自己的 Array.prototype.join() 有什么问题?

mysql - 如何将两个表与另一个第三个表中的公共(public)列连接起来?

sql - 聚合列文本,其中表 a 中的日期位于表 b 中的日期之间