2015-05-07 139 views
2

我有两个表,t1包含emailphonet2包含prefixEmailprefixEmail是以广告代码为前缀的电子邮件地址,例如:'[email protected]''[email protected]'SQL加上前缀ON值

我想要做如下加入(伪代码):

SELECT 't1.email', 't1.phone' 
FROM t1 
JOIN t2 
WHERE t1.email LIKE '%t2.prefixEmail%'. 

结果应该是电子邮件和电话,以[email protected]表,但[email protected]不应列入因为她不在t2.prefixEmail中。

摘要:如何在t1中的电子邮件是t2中的值的一部分时进行JOIN?

+0

't1.email'是一个字符串。 – Strawberry

回答

0
SELECT 't1.email', 't1.phone' 
FROM 
    t1 JOIN t2 
    ON t1.email LIKE CONCAT('%', REPLACE(t2.prefixEmail, '%', '\%'), '%') 
1

通过将t2.prefixEmail'的内线,你是把它当作一个字符串。相反,您可以在两侧连接% s:

SELECT t1.email, t1.phone 
FROM t1 
JOIN t2 ON t1.email LIKE CONCAT('%', t2.prefixEmail, '%')