だから私は2つのテーブルを持っています (table_users
とtable_values
)
table_users
id
(プライマリ自動インクリメント) 、、、、username
で構成される列がありますlogitude
。latitude
table_values
列user_id
とで構成されますotherUser_id
。主キーでも一意でも自動インクリメントでもありません。
の目的は、ログインしているユーザーとtable_value
同じ ID を持つすべてのユーザーの ID を保存することです。ただし、メイン ユーザー自体を追加するのではなく、場所の値に一致するユーザーのみを追加したいと考えています。また、場所の値に関係なく、他のユーザーが既に追加されている場合は、それらを追加したくありません。logitude
latitude
以下では、ボブを例として使用します。table_users にクエリを実行し、ボブの経度と緯度に一致するすべてのユーザー ID を table_values に挿入しますが、ボブ自身には挿入しません。
Table_users
id username longitude latitude
1 bob 1 2
2 sam 1 2
3 fred 3 4
4 alex 1 2
Table_values
user_id otherUserId
1 2
1 4
2 1
2 4
4 1
4 2
そのため、現時点では、メイン ユーザーを追加せずに同じ場所にいるユーザーを追加できますが、複数の行を に追加することはできませんtable_values
。また、現在の mysql クエリを実行すると、必要ではない重複が追加されます。
これまでの私のクエリは次のとおりです
INSERT INTO `table_values` (`user_id`, `otherUser_id`) VALUES ((Select `id` FROM `users` WHERE `username` = 'bob'), (Select `id` FROM `users` where `longitude` = 'bobs logitude AND `latitude` = bobs latitude AND `username` != 'bob'))
値 bob、12、および 3 は単なる例です。これらは、それがどのユーザーであるかに基づいています。値はphpポストメソッドを介して渡されています