嗨,我是MySQL和PHP的新手,这是我的第一篇文章..所以请耐心等待。
我试图从一个表中添加两个表和两行
friends
member_ID | friend_ID | status
和user
表
member_ID | username
我要做的是将两个表合并为一个朋友请求,friends.member_ID
是user.member_ID
发送请求,friends.member_ID
,是user.member_ID
正在请求status
,当他们接受请求时,它会将0
转为1
,这将使关系成为现实。
到目前为止,我已将此问题显示在我的查询中以显示所有这些字段,以显示谁已将此人请求为朋友
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)
我知道你可以使用别名,但我有点困惑
请帮忙,我的任务明天到期,还有很多工作要做。
由于
答案 0 :(得分: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
答案 1 :(得分: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
当您从多个表中选择两个或多个具有相同名称的列时,别名非常有用 - users.member_ID, friends.member_ID
。您可以使用$row['member_ID']
$row[0]/$row[1]
或必须使用$row['uID']/$row['fID']