我有一个朋友表,其中存储了两个朋友的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'];
}
friends(friendshipID, Person1, Person2)
users(ID, name,姓)
假设表结构为:
用户:用户名、用户名
朋友: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。