我遇到了针对某个问题提出SQL查询的问题:
表1
Client ID|Name of Client|Customer Type|Account Type|
01| A | AB | 30 |
02| B | AB | 30 |
03| C | CD | 30 |
04| D | CF | 40 |
表2
Argument|Switch|
AB30 | Y |
CD30 | N |
CF40 | Y |
表3
ClientID|Name Of Client|External_Information|
01|A | External A
02|B | External B
03|C | External C
目前,我正在尝试根据3个不同的表格提取信息。我想根据3个条件从表3中提取外部信息
Customer Type
和Account Type
的组合(例如:对于客户ID 01,组合将是{ {1}})
表1中列出表1中的AB30
表示=" Y" 我当前的SQL将是:
Switch
这将解决条件1,但对于条件2,我不确定我们如何能够在同一SQL查询中执行此操作。
预期结果应为:
select External_Information
from Table_3 a
where a.ClientID = (select ClientID
from Table_1
where ClientID = a.ClientID)
答案 0 :(得分:1)
使用JOIN
s,并使用CONCAT()
组合表1中的两列。
SELECT a.`External_Information`
FROM Table_3 AS a
JOIN Table_1 AS b ON a.`ClientID` = b.`Client ID`
JOIN Table_2 AS c ON CONCAT(b.`Customer Type`, b.`Account Type`) = c.Argument
WHERE c.Switch = 'Y'