1

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

例:

私がやりたいことは、users テーブルにすべてのユーザーを表示することですが、この場合は user_id 2 によってブロックされているユーザーを除外します。

たとえば、Mike Bendon (users テーブルの ID 3) としてログインしている場合、james dean (users テーブルの ID 2) が私をブロックしているため、彼に会うことはできません。

4

2 に答える 2

3

PHPでそれを実行する方法がわかりませんが、このSQLはあなたが求めたことを行うべきだと思います:

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

コメント後に編集: 申し訳ありませんが、id列名を読み間違えました。今すぐ修正する必要があります。

于 2012-11-30T08:02:21.417 に答える
0

このクエリを試してください:

SELECT * 
FROM   users 
WHERE  id NOT IN (
       SELECT user_id 
       FROM   blocked_users 
       WHERE  blocked_id=$current_user_id);
于 2012-11-30T08:07:20.430 に答える