私は2つのテーブルを持っています。1つはユーザー情報を保持するユーザー用で、もう1つは友達用です。
users_table : id , username , avatar
friends_table : id , u1_id , u2_id
今、私は彼のプロフィールで各ユーザーの友達を見せたいです
そして私は1つのクエリでそれをやりたい
したがって、友達テーブルでは、誰が友情をリクエストしたかに基づいて、ユーザーはu1_idまたはu2_idに入る可能性があります。
そして、私は各友達をusers_tableに参加させて、彼のユーザー名とアバターを取得したいので、簡単にはできません
select * from friends_table where u1_id = $profile_id || u2_id = $profile_id
だから私は2つのクエリを実行する必要があります
select f.u1_id , u.username , u.avatar from friends_table f join users_table u on f.u1_id = u.id
where f.u2_id = $profile_id
select f.u2_id , u.username , u.avatar from friends_table f join users_table u on f.u2_id = u.id
where f.u1_id = $profile_id
1つのクエリでこれを行う方法はありますか?
またはこのようなもの
select f.u1_id , f.u2_id , u.username , u.avatar from friends_table where u1_id = $profile_id || u2_id = $profile_id
if( u1_id = $profile_id )
join users_table u on f.u2_id = u.id
if( u2_id = $profile_id )
join users_table u on f.u1_id = u.id
私の問題は参加部分にあります。プロファイルIDの現在の所有者ではなく、友達IDでusres_tableを使用してfriends_tableに参加したいです。