2

嗨,我是 MySQL 和 PHP 的新手,这是我的第一篇文章。所以请多多包涵。我正在尝试从一个表中添加两个表和两行
friends

member_ID | friend_ID | status

和一张user桌子

member_ID | username

我想要做的是将两个表合并为一个朋友请求,friends.member_IDuser.member_ID发送请求,friends.member_IDuser.member_ID被请求的,status是当他们接受请求时,它将转向01将使关系成为真实。

到目前为止,我有这个用于我的查询以显示所有这些字段以显示谁已将此人请求为朋友

SELECT users.member_ID, friends.member_ID, friends.friend_ID, friends.status 
FROM `users` , `friends` 
WHERE friends.status=0   
AND users.member_ID = friends.member_ID
AND friends.member_ID = users.member_ID
AND users.member_ID = 6 (this will be $_SESSION[member_ID] when I add it to php)

我知道您可以使用别名,但我有点困惑

请帮忙,我的作业明天就要交了,还有很多事情要做。

谢谢

4

2 回答 2

3

试试这个加入

 SELECT users.member_ID, friends.member_ID, friends.friend_ID, friends.status 
 FROM `users` 
 INNER JOIN `friends` 

 ON users.member_ID = friends.member_ID
 WHERE friends.status=0 
 AND users.member_ID = 6
于 2013-04-06T16:55:33.307 回答
0

列别名 - 在列名后使用 AS(/as)

users.member_ID as uId, friends.member_ID as fId

表别名 - 在表名之后定义

users u , friends f

如果使用表别名,您可以在选择列名时使用它们

u.member_ID as uId, f.member_ID as fId

http://dev.mysql.com/doc/refman/4.1/en/problems-with-alias.html

SELECT u.member_ID as uId, f.member_ID as fId, f.friend_ID as ffId, f.status as fStatus
FROM `users` u 
INNER JOIN `friends` f

ON u.member_ID = f.member_ID
WHERE f.status=0 
AND u.member_ID = 6

当您从多个表中选择 2 个或更多具有相同名称的列时,别名很有用 - users.member_ID, friends.member_ID。而不是使用模棱两可$row['member_ID']或不得不使用$row[0]/$row[1],你可以使用$row['uID']/$row['fID']

于 2013-04-06T17:02:13.837 回答