2012-11-30 65 views
1

我需要編寫SQL的幫助,但在這種情況下,我不知道如何。 嘗試了許多不同的選擇,但不起作用。排除Mysql中的結果,而不是

我有我的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.

因此,如果我是例如邁克本登登錄(用戶表中的ID 3) 我不應該因爲他阻止了我詹姆斯迪恩(id 2在用戶表中)。

+0

我願意列重命名爲'blocker_id'。 'user_id'是被阻止的。 –

回答

3

不知道如何運行與PHP,但我認爲這應該SQL你問:評論後

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

編輯: 對不起,我看錯id列名。現在應該修復。

+0

我在這裏收到一個錯誤:Uknown column user_id – Mensur

+0

Thanx!現在它工作正常;) – Mensur

0

嘗試此查詢:

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

同樣在這裏即時獲取:Uknown列user_id – Mensur