【发布时间】:2014-03-20 23:32:01
【问题描述】:
我正在尝试提出一种选择语法,用于根据另一个不相关表 (A) 的“相似”值从一个表 (B) 中检索记录。
有两个表:
TABLE_A
ID CODE COMPANY
1 234 XYZ Corporation, LLC
2 142 Corp ABC Enterprise, S.L.D.
3 145 Z. Incorporated, GmBH
4 134 XYZ Corporation, LLC
5 741 Z. Incorporated, GmBH
6 952 Corp ABC Enterprise, S.L.D.
TABLE_B
ID COMPANY
1 XYZ Corporation
2 Z. Incorporated
3 Corp ABC Enterprise
4 Just another Company
我需要从 TABLE_A 中现有的条件中提取 TABLE_B.COMPANY 字段。例如,如果搜索条件是 CODE=234,我需要来自 TABLE_B 的结果 'XYZ Corporation'。
TABLE_A 有重复的公司,而 TABLE_B 没有。
到目前为止,我有这个:
SELECT DISTINCT T1.COMPANY
FROM TABLE_A T1 WHERE EXISTS
(SELECT 1 FROM
(SELECT CONCAT(T2.COMPANY, '%') AS Company FROM TABLE_B T2) c
WHERE T1.COMPANY LIKE Company AND T1.CODE='234';
这会产生结果“XYZ Corporation, LLC”,而我需要“XYZ Corporation”。也就是说,我需要 SELECT T2.COMPANY FROM ... 之类的东西,这显然不起作用,因为该变量对于第一个 SELECT 是未知的。
谢谢!
【问题讨论】: