1

だから私は2つのテーブルを持っています (table_userstable_values)

table_usersid(プライマリ自動インクリメント) 、、、、usernameで構成される列がありますlogitudelatitude

table_valuesuser_idとで構成されますotherUser_id。主キーでも一意でも自動インクリメントでもありません。

の目的は、ログインしているユーザーとtable_value同じ ID を持つすべてのユーザーの ID を保存することです。ただし、メイン ユーザー自体を追加するのではなく、場所の値に一致するユーザーのみを追加したいと考えています。また、場所の値に関係なく、他のユーザーが既に追加されている場合は、それらを追加したくありません。logitudelatitude

以下では、ボブを例として使用します。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ポストメソッドを介して渡されています

4

1 に答える 1