0
別のテーブルのデータの識別子として使用される2つの値( "user"と "assessor")を持つテーブル "テーブルA" 「表B」。 「表B」の範囲内では、既存のユーザーは誰でも評価者であり、他者を評価することができます。同じテーブルにつながる2つの外部キーを持つテーブルの問題
"user"と "assessor"が同じテーブルにリンクしているので、ユーザーと評価者を同時にフィルタリングしたい場合はテーブルBの検索を実行できません。以下はその意味です。
select `tableA`.*
from `tableA`
left join `tableB` on `tableA`.`user_id` = `tableB`.`id`
left join `tableB` on `tableA`.`assessor_id` = `tableB`.`id`
where LOWER(tableB.first_name) REGEXP "John" # user's name
AND LOWER(tableB.first_name) REGEXP "Bill" # assessor's name
この問題をすばやく回避する方法はありますか、評価担当者専用の別のテーブルを作成する必要がありますか、または既存のユーザーテーブルをいくつかクローンする必要がありますか?