INNER JOIN声明

时间:2018-08-28 14:46:21

标签: sql inner-join

我知道这是一个简单的INNER JOIN语句,只是语法不正确。

情况是这样的,表1(AllUserData)包含INT7和INT6字段。基本上,INT7是“请求者”,而INT6是“请求”。这2个字段包含一个ID。表2(UserInfo)的字段tp_ID包含其ID,tp_Title是其名称。

我目前拥有的是:

    SELECT alluserdata.int7, alluserdata.int6, UserInfo.tp_ID, 
           userinfo.tp_Title
    FROM alluserdata
    INNER JOIN UserInfo on AllUserData.int7 = UserInfo.tp_ID or 
                           AllUserData.int6 = UserInfo.tp_ID

问题在于,输出将在两行上。一行将显示“ Requested by”名称(int7),而一行将显示“ Requested for”名称(int6)。我希望这些条目在同一行。

1 个答案:

答案 0 :(得分:1)

您需要两次JOIN

SELECT a.int7, a.int6,
       u1.tp_ID, u1.tp_Title,
       u2.tp_ID, u2.tp_Title
FROM alluserdata a
LEFT JOIN UserInfo u1 on a.int7 = u1.tp_ID 
LEFT JOIN UserInfo u2 ON a.int6 = u2.tp_ID
WHERE u1.tp_ID is not null or u2.tp_ID is not null;