gpt4 book ai didi

php - 删除出现在另一个查询中的 1 个查询的结果

转载 作者:行者123 更新时间:2023-11-29 05:44:10 24 4
gpt4 key购买 nike

我有一个查询,通过加入 friend 和用户表来检索用户拥有的每个 friend 的名字。我有另一个存储活跃用户的表。我需要检索活跃和不活跃的 friend ,但由于某种原因我正在画一个空白。如果我有一个所有 friend 的列表和一个活跃 friend 的列表,我可以从所有中减去活跃以留下离线吗?我想做的基本上就是有两个选项卡。下一个将是离线的 friend 。下其他会在线的 friend 。如果有人有任何有用的建议,我将不胜感激。

 $sql = 'SELECT * FROM users
LEFT JOIN friendships
ON friendships.friend_id = users.id
WHERE friendships.user_id = ?';
$stmt5 = $conn->prepare($sql);
$result=$stmt5->execute(array($userid));

$count=$stmt5->rowCount();

//user has more than 0 friends
if ($count>0){
while ($row = $stmt5->fetch(PDO::FETCH_ASSOC)) {
$online=htmlspecialchars( $row['username'], ENT_NOQUOTES, 'UTF-8' );
//check whos online
$sql = 'SELECT * FROM active_users
WHERE username=?';
$stmt7 = $conn->prepare($sql);
$result=$stmt7->execute(array($online));

$count=$stmt7->rowCount();
while ($row = $stmt7->fetch(PDO::FETCH_ASSOC)) {
$activeuser=$row['username'];
}
}

此代码仅检索活跃用户,但希望给出结构的概念。

最佳答案

你能做一个“不在”的条款吗?在不知道你的数据库布局的情况下,我在想这样的事情:

SELECT * FROM users
LEFT JOIN friendships
ON friendships.friend_id = users.id
WHERE friendships.user_id = ?
AND users.id NOT IN (
SELECT user_id FROM active_users
)

关于php - 删除出现在另一个查询中的 1 个查询的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4093941/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com