我有两个表,一个是仅包含用户的表,另一个是朋友关系列表。我试图加入用户表的用户名列与朋友表中的朋友ID列。此外,我希望状态等于接受,所以我添加了一个where子句。现在它只输出列idUsers和用户名,但没有任何内容。
SELECT idUsers, Username FROM Users INNER JOIN `Friends` on Users.Username =
Friends.FriendID WHERE Status = 'Accepted'
Users Table
+---------+----------+----------+------------+
| idUsers | Username | Password | OrderGroup |
+---------+----------+----------+------------+
| 1 | test | test | NULL |
| 2 | test2 | test | NULL |
+---------+----------+----------+------------+
Friends Table
+--------+----------+----------+
| UserID | FriendID | Status |
+--------+----------+----------+
| 1 | 2 | Accepted |
+--------+----------+----------+
答案 0 :(得分:2)
您已经使用错误的关系加入了表,varchar用户名如何等于整数id Users.Username =Friends.FriendID
,将您的on子句更新为
ON Users.idUsers =Friends.FriendID
SELECT
idUsers,
Username
FROM
Users
INNER JOIN `Friends`
ON Users.idUsers = Friends.FriendID
WHERE `status` = 'Accepted'
答案 1 :(得分:1)
你的加入应该由idUsers
SELECT idUsers, Username FROM Users INNER JOIN Friends on Users.idUsers =
Friends.FriendID WHERE Status = 'Accepted'