访问关系数据库中的结果时出错

时间:2013-01-29 05:55:50

标签: mysql sql select join

我有一个表格设置如下

enter image description here

我正在尝试编写一个查询来返回结果,其中status = 1 confirm = 1且用户ID =指定。我希望结果显示用户ID,与该用户ID关联的名称,freind id以及与该freind id关联的名称。到目前为止,在网络上的教程后,我提出了以下查询

SELECT `freinds.User ID`, `freinds.Freind ID`, `users.User`, `users.User` FROM `freinds` WHERE `User ID`= 6 INNER JOIN `users` on `users.ID`=6 AND `users.ID`=`freinds.Freind ID`

但是我收到此查询的SQL错误。我认为我应该做的是内部加入用户表两次,但我不确定如何做到这一点

1 个答案:

答案 0 :(得分:2)

问题是你将tablename和columnname与backtick整体包装起来。您需要将其分开,或者如果名称不在“MySQL保留关键字”上,请删除反引号。

您还需要加入表User两次,以便获取表Freinds上每个ID的名称。

SELECT  a.`User ID`, 
        a.`Freind ID`, 
        b.User FriendName,
        c.User UserName
FROM    `freinds` a
        INNER JOIN `users` b 
            ON b.ID = a.`Freind ID`
        INNER JOIN users c
            ON c.id = a.`user ID`
WHERE   `User ID`= 6 

作为旁注,如果其中一个ID 可以为空,则LEFT JOIN优先于INNER JOIN

要充分了解联接知识,请访问以下链接: