我需要帮助来编写 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/