在我的数据库我有4个相关的表,我想选择不重复的记录,但我不知道该怎么做。
SELECT
UserID = dbo.tblUsers.id
,dbo.tblUsers.nickname
,dbo.tblUsers.avatarPic
,dbo.tblUsers.userRate
,dbo.tblUsers.workedProjects
,dbo.tblUsersVotes.userVotes
,dbo.tblUsersVotes.votesCount
,dbo.tblUsersVotes.votesPoint
,dbo.tblUsersVotes.voteSticker
,dbo.tblUsersVotes.voteMedal
,OID = dbo.tblProjectOffers.id
,dbo.tblProjectOffers.odate
,ProjectID = dbo.tblProjects.id
,dbo.tblProjectOffers.oprice
FROM dbo.tblProjectOffers
INNER JOIN dbo.tblUsersVotes
INNER JOIN dbo.tblUsers ON dbo.tblUsersVotes.uid = dbo.tblUsers.id
INNER JOIN dbo.tblProjects ON dbo.tblUsers.id = dbo.tblProjects.UserID ON dbo.tblProjectOffers.pid = dbo.tblProjects.id
WHERE dbo.tblProjectOffers.pid = @pid
在此选择查询它显示了所有的记录,但也有重复的记录。例如,我希望它有1个用户名只返回1个记录。
这是我的表
的用户票样本
表和结果
尝试这个
SELECT DISTINCT
UserID = dbo.tblUsers.id
,dbo.tblUsers.nickname
,dbo.tblUsers.avatarPic
,dbo.tblUsers.userRate
,dbo.tblUsers.workedProjects
,dbo.tblUsersVotes.userVotes
,dbo.tblUsersVotes.votesCount
,dbo.tblUsersVotes.votesPoint
,dbo.tblUsersVotes.voteSticker
,dbo.tblUsersVotes.voteMedal
,OID = dbo.tblProjectOffers.id
,dbo.tblProjectOffers.odate
,ProjectID = dbo.tblProjects.id
,dbo.tblProjectOffers.oprice
FROM dbo.tblProjectOffers
INNER JOIN dbo.tblUsersVotes
INNER JOIN dbo.tblUsers ON dbo.tblUsersVotes.uid = dbo.tblUsers.id
INNER JOIN dbo.tblProjects ON dbo.tblUsers.id = dbo.tblProjects.UserID ON dbo.tblProjectOffers.pid = dbo.tblProjects.id
WHERE dbo.tblProjectOffers.pid = @pid
您可以使用此,
SELECT
distinct dbo.tblUsers.id
,dbo.tblUsers.nickname
,dbo.tblUsers.avatarPic
,dbo.tblUsers.userRate
,dbo.tblUsers.workedProjects
,dbo.tblUsersVotes.userVotes
,dbo.tblUsersVotes.votesCount
,dbo.tblUsersVotes.votesPoint
,dbo.tblUsersVotes.voteSticker
,dbo.tblUsersVotes.voteMedal
,dbo.tblProjectOffers.id
,dbo.tblProjectOffers.odate
,dbo.tblProjects.id
,dbo.tblProjectOffers.oprice
FROM dbo.tblProjectOffers
INNER JOIN dbo.tblUsersVotes
INNER JOIN dbo.tblUsers ON dbo.tblUsersVotes.uid = dbo.tblUsers.id
INNER JOIN dbo.tblProjects ON dbo.tblUsers.id = dbo.tblProjects.UserID ON
dbo.tblProjectOffers.pid = dbo.tblProjects.id
WHERE dbo.tblProjectOffers.pid = @pid
FROM
dbo.tblProjectOffers
INNER JOIN
dbo.tblUsersVotes
INNER JOIN
dbo.tblUsers ON dbo.tblUsersVotes.uid = dbo.tblUsers.id
INNER JOIN
dbo.tblProjects ON dbo.tblUsers.id = dbo.tblProjects.UserID ON dbo.tblProjectOffers.pid = dbo.tblProjects.id
where
dbo.tblProjectOffers.pid=@pid