php - 排除 Mysql 中的结果,而不是 IN

标签 php mysql sql

我需要帮助来编写 SQL,但在这种情况下我不知道该怎么做。 尝试了许多不同的选择,但没有任何效果。

我的 mysql 数据库中有 2 个表

users (id, name, lastname)
blocked_users (id, user_id, blocked_id)

users table
id  name    lastname
1   nick    james
2   james   dean
3   mike    bendon

blocked_users table
id  user_id     blocked_id
1   2           1
2   2           3

例子:

我想做的是在用户表中显示所有用户,但在这种情况下排除 那些被 user_id 2 阻止的。

因此,如果我是以 Mike Bendon 身份登录的示例(用户表中的 ID 3) 我不应该能够看到 james dean(用户表中的 id 2),因为他已经阻止了我。

最佳答案

不确定如何用 php 运行它,但我认为这个 SQL 应该按照您的要求执行:

SELECT *
FROM users
WHERE id NOT IN
(SELECT user_id FROM blocked_users WHERE blocked_id = $logged_id);

评论后编辑: 抱歉,我看错了 id 列名。现在应该修复了。

关于php - 排除 Mysql 中的结果,而不是 IN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13641111/

相关文章:

php - 如何从 php/Zend 为 LDAP 使用多个 TLS 证书?

PHP:检查文件是否直接加载而不是包含?

php - 用 PHP 正则表达式替换单词或单词组合

python - 下载 CSV 文件,然后使用 Python 上传到 MySQL

php - 如何允许 Facebook 用户在我的应用程序中提交一次详细信息并存储此信息以供其他重复访问使用?

c# - 存储过程产生从 c# .net 调用的不同结果

mysql - 在 mySQL 中检查两个表,其中 1 个结果可以为 NULL

sql - 如何在 SQL Server 2008 中使用 SQL 查询生成具有约束的表的创建脚本

sql - 从时间戳格式 "25/Nov/2016:15:48:01 +0000' 中检索月份

mysql - 忽略具有零值的计数不适用于子查询