我是 SQL 的初学者。
现在我正在尝试创建一个有点复杂的选择,但我遇到了一些错误,我知道这是一个初学者的错误。
任何帮助表示赞赏。
SELECT ROW_NUMBER() OVER (ORDER BY score) AS rank, userID, facebookID, name, score FROM (
SELECT * FROM Friends AS FR WHERE userID = ?
JOIN
Users WHERE Users.facebookID = FR.facebookFriendID
)
UNION (
SELECT * FROM User WHERE userID = ?
)
2在哪里?将替换为我的用户 ID。
表 User 包含我数据库中的每个用户,而 Friends 表包含用户的所有 facebookFriends。
USER TABLE
userID | facebookID | name | score
FRIENDS TABLE
userID | facebookFriendID
样本数据
用户
A | facebookID1 | Alex | 100
B | facebookID2 | Mike | 200
朋友们
A | facebookID2
A | facebookID3
B | facebookID1
我想要这个结果,因为 Alex 和 Mike 是朋友:
rank | userID | facebookID | name
1 | B | facebookID2 | Mike
2 | A | facebookID1 | Alex
我希望这是非常清楚的解释。
我目前收到此错误:
执行查询时出错:关键字“AS”附近的语法不正确。