我有两个表,一个用户和一个我在发送朋友请求时链接它们。问题是我没有设法做出一个好的查询来核心地检索用户好友列表。 ID_User1是发送请求的人,ID_User2是接受请求的人。 Status_Link有两个值1 =挂起2 =朋友。因此,当我选择一个用户时,我想用fname和lname显示他的朋友列表。
CREATE TABLE IF NOT EXISTS `Friends` (
`ID_Link_Users` int(3) NOT NULL AUTO_INCREMENT,
`ID_User1` int(3) NOT NULL,
`ID_User2` int(3) NOT NULL,
`Status_Link` int(1) NOT NULL,
PRIMARY KEY (`ID_Leg_Users`)
);
CREATE TABLE IF NOT EXISTS `Users` (
`ID_User` int(3) NOT NULL AUTO_INCREMENT,
`FName` varchar(100) NOT NULL,
`Lname` varchar(100) NOT NULL,
`Email` varchar(250) NOT NULL,
`Password` varchar(180) NOT NULL,
`Status` int(1) NOT NULL,
PRIMARY KEY (`ID_User`)
) ;
答案 0 :(得分:2)
试试这个:
SELECT FName, ULName
FROM Friends INNER JOIN
Users ON((ID_User2 = ID_User AND ID_User1 = @User) OR (ID_User1 = ID_User AND ID_User2 = @User))
WHERE Status_Link = 2 -- forgot about that part before...
答案 1 :(得分:1)
当user = XXX
时,这将返回所有ID_User2的名字和姓氏SELECT FName, LName
FROM Users u
INNER JOIN Friends f ON u.ID_User = f.ID_User2
WHERE u.ID_User1 = 'XXX'
AND f.Status_Link = 2
答案 2 :(得分:1)
SELECT U.Fname, U.Lname
FROM USERS U
JOIN FRIENDS F ON F.ID_USER2=U.ID_USER
WHERE F.ID_USER= USER ID OF THE REQUESTED FRIEND LIST
AND F.STATUS_LINK=2 --friends status