我不是php的专家,我找了这样的东西,但找不到任何东西(不知道如何搜索这个,或者名字是什么)。
案例:
我有两个单独的表格:
"朋友":
id | friend_id | foe_id
"更新":
id | USER_ID
这段代码:
$selectFriends = "SELECT * FROM friends WHERE friend_id = '".$_COOKIE['id']."' OR foe_id = '".$_COOKIE['id']."'";
$queryFriends = mysql_query($selectFriends)or die(mysql_error());
while($listFriends = mysql_fetch_assoc($queryFriends))
{
echo "".$listFriends['friend_id']."";
echo "".$listFriends['foe_id']."";
$selectUpdates = "SELECT * FROM updates WHERE user_id != ".$_COOKIE['id']." AND user_id IN (' . implode(',', ".$listFriends['friend_id'].") . ') ORDER BY date DESC LIMIT 10";
$queryUpdates = mysql_query($selectUpdates)or die(mysql_error());
}
我在第一个查询中得到了我想要的正确ID,但现在我想使用第二个查询中第一个查询的id' s;选择我的"朋友"的更新。简而言之:链接" friend_id" &安培; " foe_id"到" user_id"从第二张桌子。
答案 0 :(得分:0)
使用子查询,因为问题不是那么明确我只提供了这个想法
SELECT * FROM updates WHERE user_id IN (SELECT friend_id FROM friends WHERE friend_id = '".$_COOKIE['id']."' OR foe_id = '".$_COOKIE['id']."'");
否则你需要在PHP中做很少的事情。获取所有的friend_id和foe_id记录,在变量($ var)中准备一个逗号分隔字符串。在查询中使用它
SELECT * FROM updates WHERE user_id IN ($var);
您可能也想使用GROUP_CONCAT