我不是 php 方面的专家,我在寻找类似的东西,但找不到任何东西(不知道如何搜索它,也不知道它的名字是什么)。
案例:
我有两个单独的表:
“ friend ”:
编号 | friend_id | foe_id
“更新”:
编号 |用户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;选择我的“ friend ”的更新。简而言之:将“friend_id”和“foe_id”链接到第二张表中的“user_id”。
最佳答案
使用子查询,因为问题不是很清楚我只是提供思路
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
关于php - 根据其他查询的值选择查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29242159/