返回基于其他列值

时间:2015-09-15 08:54:14

标签: mysql sql

考虑我有下表:

Id      | sid          | email
___________________________________________________
1       | 10           | john@yahoo.com
2       | 11           | elsa@gmail.com
3       | 10           | johnconnor@gmail.com
4       | 10           | john.smith@gmail.com
5       | 12           | ninjamutant@yahoo.com

我想通过传递已知的“电子邮件”来查询具有相同“sid”的所有行 因此,如果我将电子邮件作为“john.smith@gmail.com”传递,则应返回ID为1,3和4的行。

2 个答案:

答案 0 :(得分:1)

试试这个:

select * from yourtable a
inner join (
    select sid 
    from yourtable
    where email = "john.smith@gmail.com"
) b on b.sid = a.sid

答案 1 :(得分:1)

select T2.*
from my_table T1 join my_table T2
on T1.sid = T2.sid
where T1.email = 'xxx'