php - 根据其他查询的值选择查询

标签 php mysql arrays select

我不是 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/

相关文章:

javascript - ajax 调用后图像不显示 [Symfony2]

php - 按月自动生成发票的解决方案?

mysql - 使用 SQL 子查询或 JOIN 子句进行选择

php - 输入数组转换

php - 如何将 JSON 数据发布到 Paypal Adaptive

MySQL 性能(INT、DECIMAL、VARCHAR)

php - "Parse error: syntax error, unexpected T_STRING, expecting T_VARIABLE"的根本原因是什么?

java - 子对象数组

javascript - Javascript 数组中的图像 URL 是否会自动预加载到浏览器中?

php - 使用 IIS 实现搜索引擎友好的 URL