2013-01-22 64 views
0

我们如何做到如下操作?在PHP中遇到问题MySQL查询

$results = $DB->query("SELECT * FROM users WHERE id!='{$id}' "); 

即使我不知道该代码,

$a = $DB->query("SELECT * FROM friends WHERE(someone is not friends with you)' "); 

列在朋友:user_idfriends_id

+0

SELECT * FROM'朋友'WHERE'friends_id'!= {$ id}? 。 – ATaylor

+1

选择x * FROM MY_TABLE X左JOIN MY_TABLE Y于y.user_id = x.user_id AND y.friend_id = '我' WHERE y.user_id IS NULL; – Strawberry

+0

@mud nazmi - 为什么不给它去看看自己! – Strawberry

回答

0

使用NOT IN

ID NOT IN (IDs OF FRIEND)

$DB->query("SELECT * FROM user AS User WHERE User.id NOT IN (select * from friends where user_id = User.id)");
+0

编号不要使用NOT IN。 – Strawberry

+0

@Strawberry,你的建议是什么? –

+0

见上文。这是不完整的,但更好的表现 - 这是不存在的 – Strawberry

0
$DB->query("SELECT x.* FROM users x WHERE x.id NOT IN (myid, friendids)"); 
0

你需要找到不是你朋友的人。对? 所以,你有你的的user_id$添加my_id。然后,您可以选择friend_ID的朋友user_id字段不包含您的user_id值($ my_id)。然后从这些friend_ID检索到的,您可以从用户表中选择用户。 使用此:

$ DB->查询(!SELECT * FROM用户WHERE ID IN(选择friend_id FROM 朋友其中USER_ID = {$添加my_id}))

会工作。 :)

0

不知道你的数据库的确切结构,使你的问题却丝毫伎俩的想法去,有人说是你的朋友,当他是你的朋友或者你是他的朋友,你必须选择那些谁你没有添加为朋友,他们也没有添加你。

像这样的查询应该可以帮助您。

“SELECT * FROM用户WHERE users.id NOT IN(选择从朋友那里USER_ID!= '{$ YOUR_ID}' AND friend_id!= '{$ YOUR_ID}' *)”