mysql左外连接有两个条件

时间:2013-07-18 10:02:06

标签: mysql sql join left-join inner-join

我有两个表,一个包含用户信息,另一个包含oauth信息。

我允许每个用户帐户拥有多个oauth登录信息 - 所以我有一个oauth表,其中包含:

ID|Provider|Identifier|UserID

我无法弄清楚我需要的查询,但我需要使用此表来查找我使用该UserID的所有用户数据。

因此,如果我知道提供者和标识符信息,那么我可以使用该行上的UserID,加入其余数据并将用户登录。我是否需要左连接或类似的东西?

2 个答案:

答案 0 :(得分:4)

即使找不到匹配项,left join也会返回行。由于登录不是用户的人没有意义,inner join会更合适。 inner join是默认类型,您可以省略它:

select  *
from    OathLogins ol
join    Users u
on      u.ID = ol.ID
where   ol.Provider = 'Sesame Street'
        and ol.Identifier = 'Bert'

答案 1 :(得分:0)

select UI.ID, UI.Provider, UI.Identifier, UI.UserID
    from  user_info UI 
    left outer join oauth_info OI on UI.ID=OI.ID

At, last put where cluase like : " where UI.ID=3 " like