-1

ユーザーの geoloc のこのリストがあります (id、緯度、経度):

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 に答える