在SQL中使用Substring的问题

时间:2014-10-23 02:14:05

标签: mysql substring

我遇到了针对某个问题提出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中提取外部信息

  1. 客户端ID必须存在于表3和表1中
  2. 如果表3和表1中存在客户端ID,那么我们必须在表2中检查Customer TypeAccount Type的组合(例如:对于客户ID 01,组合将是{ {1}}) 表1中列出表1中的AB30表示=" Y"
  3. 我当前的SQL将是:

    Switch

    这将解决条件1,但对于条件2,我不确定我们如何能够在同一SQL查询中执行此操作。

    预期结果应为:

    select External_Information 
    from Table_3 a 
    where a.ClientID = (select ClientID 
                        from Table_1 
                        where ClientID = a.ClientID) 
    

1 个答案:

答案 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'

DEMO