-1

我有这个用户 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 拉出 geoloc 列表时,它看起来像:

user3, 456, 462

我的 SQL 到目前为止看起来像这样:

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

我不知道如何将其他表格包含在不包含的表格中:-/我该怎么做?

如果 user1 像从 _log 表中那样单击 user2,除非 user2 移动,否则 user1 不会从 geoloc 列表中获取 user2...

4

2 回答 2

3

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

and id NOT IN (select other_id from geoloc_log where id = 'user1')
于 2013-01-10T11:34:31.733 回答
0

如果我理解得很好,那么查询将是这样的

select * from geoloc where id!='user1' and not in (select other_id from geoloc_log where id='user1' )
于 2013-01-10T11:38:21.660 回答