轻松查询朋友表中两个朋友的姓名

时间:2011-04-06 22:57:34

标签: php mysql foreign-keys foreign-key-relationship

我有朋友表,其中存有两个朋友的ID。当我查询时,让我们说我的朋友,是否有一种简单的方法可以从用户表中获取朋友的名字?我使用PHP和MySQL,表没有通过外键连接,但我想我可以连接它们(使用Navicat)。

我的查询:

session_start();
if(isset($_SESSION['valid_user']))
    {
        $currentuser= $_SESSION['valid_user'];
    }


$friendships= mysql_query("SELECT * FROM friends WHERE Person1 = '$currentuser' OR Person2 = '$currentuser' ");
while($row = mysql_fetch_assoc($friendsips))
    {
        if ($row['Person1'] == $currentuser) echo $row['Person2']; // quering the users name from here is hard and long thing to do
        if ($row['Person2'] == $currentuser) echo $row['Person1'];
    }

朋友(friendshipID,Person1,Person2)

用户(身份证,姓名,姓氏)

1 个答案:

答案 0 :(得分:0)

假设表结构为:

用户: userid,名称

朋友: friendship_id,userid_1,userid_2

SELECT name 
FROM Friends F JOIN Users U ON (F.userid_2 = U.userid) 
WHERE userid_1 = X

编辑: 如果你想获得这两个名字,你可以使用它。

SELECT 
  U1.name as name1 , U2.name as name2
FROM 
 Friends F 
 JOIN Users U1 ON (F.userid_1 = U1.userid) 
 JOIN Users U2 ON (F.userid_2 = U2.userid) 
WHERE 
 userid_1 = X

您可以调整where子句以查询用户ID。