如何根据其他列表从列表中排除用户?

时间:2013-01-10 11:30:01

标签: mysql

我有这个用户的geoloc列表(id,lat,long):

user1, 123, 456

user2, 321, 123

user3, 456, 462

在我的应用程序中,用户(例如user1)获取地图并可以单击其他用户。这导致我的geoloc_log(id,lat,long,other_id)中的条目(other_id是用户点击的用户的ID: - )):

user1, 321, 123, user2 // user1 clicked on user2 when user2 was at its position

user3, 123, 456, user1 // same, but user3 and user1

所以,当user1从geoloc中提取列表时,我想排除他自己和他点击的那些。

当user1拉出地理位置列表时,它看起来像:

user3, 456, 462

My SQL sofar看起来像这样:

SELECT * FROM geoloc WHERE id != 'user1' AND ...

我无法理解如何将其他表格包含在不包含哪些内容的表格中: - /我该怎么做?

如果user1从_log表中点击user2,则user1将不会从geoloc列表中获取user2,除非user2移动...

2 个答案:

答案 0 :(得分:3)

如果我理解得很好,那应该是

and id NOT IN (select other_id from geoloc_log where id = 'user1')

答案 1 :(得分:0)

如果我理解得比查询会像这样

select * from geoloc where id!='user1' and not in (select other_id from geoloc_log where id='user1' )