2010-10-21 51 views
0

我有兩個表a和b如下實現一個簡單的塊列表,用戶可以阻止其他用戶.....查詢imlement塊列表

表A

+ ----- ------- + -------------- + ------ +

|名稱|電話| userid |

+ ------------ + -------------- + ------ +

|薩西先生| 01225 708225 | 1 |

|布朗小姐| 01225 899360 | 2 |

|布萊克先生| 01380 724040 | 3 |

+ ------------ + -------------- ------ + +

表B

+ ------------ + -------------- +

| blockedbyid | blockedid |

+ ------------ + -------------- +

| 1 | 2 |

| 2 | 3 |

| 1 | 3 |

+ ------------ + -------------- +

「blockedbyid」 是用戶ID誰已經封鎖了用戶「blockedid」。

我需要加入這兩個表,並從表A中獲取所有記錄,以便結果包含所有未被特定用戶阻止的用戶[即blockedbyid ='XXX'] ..你們可以給出SQL查詢這樣我可以將記錄作爲記錄集讀取?我不想取兩個不同的行集,並在PHP比較....

回答

0

像這樣的東西應該工作

Parameter :USERID 

SELECT * FROM TABLEA WHERE userid NOT IN (SELECT blockedid FROM TABLEB WHERE blockedbyid = :USERID) 
0

使用連接

選擇[u]。* FROM TABLEB B,TABLEAüWHERE b.blockedbyid ='XXX'AND b.blockedid = NULL

它可能會這樣工作,試試看。

Roadie57解決方案似乎更好。