Я как бы начинаю с SQL.Новичок SQL-запрос с ROW_NUMBER
Прямо сейчас я пытаюсь создать несколько сложный выбор, но я получаю некоторую ошибку, и я знаю, что это ошибка начинающего.
Любая помощь приветствуется.
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? будет заменен идентификатором моего пользователя.
Таблица Пользователь содержит каждого пользователя в моей базе данных, в то время как таблица друзей содержит все 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
я хотел бы этот результат, поскольку Алекс и микрофон друзья:
rank | userID | facebookID | name
1 | B | facebookID2 | Mike
2 | A | facebookID1 | Alex
Надеюсь, это было вполне понятное объяснение.
Я получаю эту ошибку в данный момент:
произошла ошибка выполняющийся запрос: Неправильный синтаксис около ключевого слова «AS».
Какая БД вы используете (и добавляете ключевое слово)? MS-SQL Server? Поскольку OVER не поддерживается всеми БД. – Roger
Прошу прощения, это SQL Server. Это часть запроса в моей архитектуре на стороне сервера azure. – Axy