У меня есть 2 таблицы, из которых мне нужно получить данные ... Моя таблица пользователей выглядит следующим образом:
Users Table
-------------
UserID
FirstName
LastName
WebLogin
WebPassword
Active
UserAlternates Table
---------------------
UserAlternateID
UserID
AlternateUserID
Users Table Data
------------------
1, John, Brown, jbrown, jbrown, true
2, Mark, Smith, msmith, msmith, true
3, Tim, Stone, tstone, tstone, true
UsersAlternate Table Data
--------------------------
1, 1, 2
2, 1, 3
3, 2, 1
4, 3, 2
5, 3, 1
UserID ссылается на UserID в таблице Users, как и AlternateUserID. Это тот случай, когда в нашей программе могут быть пользователи, которые «альтернативны» другим пользователям. Таким образом, в приведенном выше примере, если у Джона Брауна будут Марка и Тима в качестве заместителей, а у Марка будет Джон в качестве заместителя, а у Времени - Марка и Джона в качестве заместителей. Я рисую бланк о том, как написать SQL, чтобы показать альтернативным пользователям для данного идентификатора пользователя. Поэтому, если я передам UserID = 1, он вернет:
2, Mark, Smith
3, Tim, Stone
Я попробовал это, но он возвращает 2 строки с одинаковыми пользовательскими данными (в данном случае 2 Джона Брауна):
CREATE PROCEDURE [dbo].[GetUserAlternates]
@UserID int
AS
SELECT u.FirstName, u.LastName, ua.AlternateUserID
FROM Users u
INNER JOIN UserAlternates ua ON u.UserID = ua.AlternateUserID
WHERE u.UserID = @UserID
Есть идеи?