1

あなたの助けが必要です。クエリを実行して、id 1 がテーブル users_blocked に存在しない人だけを確認する必要があります。

私はこのように試しました:

SELECT 
U.first_name, U.sex, U.age, U.id, UB.request_user_id, UB.block_user_id
FROM users U, users_blocked UB
WHERE U.sex <> 'm'
AND NOT (UB.request_user_id = U.id AND UB.block_user_id = 1)

しかし、それは機能しません

テーブル users のレコード 32 を確認するにはどうすればよいですか?

Table: users

id  | first_name  | sex | age
1   | Mark        | m   | 32
2   | Alice       | f   | 26
23  | Lory        | f   | 24
32  | Jenny       | f   | 25


Table: users_blocked

id | request_user_id | block_user_id
1  | 2               | 1
2  | 23              | 1
4

4 に答える 4

0

私があなたの質問を正しく理解していれば、block_user_id が 1 ではなく、レコードが両方のテーブルに存在するすべてのレコードを検索したいと考えています。以下のクエリが役立ちます

これを試して:

SELECT 
    U.first_name, U.sex, U.age, U.id, UB.request_user_id, UB.block_user_id
FROM users U
INNER JOIN users_blocked UB ON U.id = UB.block_user_id
WHERE U.sex <> 'm' AND UB.block_user_id != 1
于 2013-08-05T10:07:46.217 に答える
0
Select * from users u join users_blocked ub on u.id = ub.request_user_id where u.sex <> 'm' and ub.block_user_id != 1
于 2013-08-05T10:08:54.190 に答える
0

おそらく

SELECT u.id FROM users u 
INNER JOIN users_blocked ub ON u.id = ub.request_user_id
WHERE u.sex <> 'm' and ub.block_user_id <> 1
于 2013-08-05T10:10:53.710 に答える