我需要帮助来编写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) 我不应该让詹姆斯院长(用户表中的id 2)因为他阻止了我。
答案 0 :(得分:3)
不确定如何使用php运行它,但我认为这个SQL应该按照你的要求执行:
SELECT *
FROM users
WHERE id NOT IN
(SELECT user_id FROM blocked_users WHERE blocked_id = $logged_id);
评论后编辑:
抱歉,我误读了id
列名称。现在应该修好。
答案 1 :(得分:0)
尝试此查询:
SELECT *
FROM users
WHERE id NOT IN (
SELECT user_id
FROM blocked_users
WHERE blocked_id=$current_user_id);