我试图提出一种选择语法,用于从一个表格(B)中检索记录,这些表格基于类似的'另一个不相关的表(A)的值。
有两个表:
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,我需要结果' XYZ Corporation '来自TABLE_B。
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的变量是未知的。
谢谢!
答案 0 :(得分:1)
您需要join
代替exists
才能从table_b
获取行:
SELECT DISTINCT T2.COMPANY
FROM TABLE_A T1 JOIN
TABLE_B T2
ON T1.COMPANY LIKE CONCAT(T2.COMPANY, '%') AND T1.CODE = '234'