MySQL连接两行,两个表,具有相同的字段

时间:2013-04-06 16:50:24

标签: php mysql join alias

嗨,我是MySQL和PHP的新手,这是我的第一篇文章..所以请耐心等待。 我试图从一个表中添加两个表和两行 friends

member_ID | friend_ID | status

user

member_ID | username

我要做的是将两个表合并为一个朋友请求,friends.member_IDuser.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)

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

请帮忙,我的任务明天到期,还有很多工作要做。

由于

2 个答案:

答案 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']