EDIT:私のデータベースは正規化されていませんが、変更できません。MySQL:2人のユーザIDに関連する結果を取得する
user_dialogs
というテーブルがあり、id, user_id, dialog_id, type, status, created_at
とupdated_at
フィールドがあります。
user_id 1
とuser_id 2
の間に存在するdialog_id
を取得する良い方法が見つかりませんでした。type='PRIVATE'
です。
私はIN:user_id IN(1,2) and type='PRIVATE'
を使用しようとしましたが、私はdialog_id
というユーザー1がユーザー3で作成されています。
ユーザー1とユーザー2の間でdialog_idを取得する最適な方法は何ですか。
どのようにこの問題/アルゴリズムを呼び出すのですか?知りません。
ありがとうございます!
できません。あなたのデータは、それを記述するときに正規化されていないので、その関係を記述する方法はありません。関係が__many-to-many__(_i.e。複数のユーザが同じダイアログに関与していて、複数のユーザがある)である 'user'と' dialog'の間の実際の関係を記述するテーブルが必要です。複数の対話に関わっている_)。これは、対話とユーザーの関係が__one-to-one __であることを示すときは不可能です。 – Sherif
dialog_idは、会話中の2人(またはそれ以上)のユーザー間で一意ではありませんか? – scsimon
ユーザはダイアログに1回だけ(ユーザによって一意)登録することができますが、ダイアログには多数のユーザを含めることができます。 – Maykonn