データを取得する方法を見つけるのに苦労しています。mysql クエリで複数の外部キー関係をトラバースする方法が必要です。一般的なテーブル構造は次のとおりです。
Subjects (table)
-id
-fname
-lname
-etc.
Events(table):
-id
-subject_id
-procedure_id
-date
Procedures(table):
-id
-description
これらの識別子は、次のような他のテーブルで使用されます。
Assessment1(table):
-id
-event_id
-data, etc.
Assessment2(table):
-id
-event_id
-data, etc.
私が抱えている問題は、アセスメント 1 とアセスメント 2 の両方のイベントを持つ被験者のすべてのアセスメント データを取得できることです。同じ event_id (この例では、Assessment1 と Assessment 1a)。しかし、サブジェクト ID に基づいてリンクできるようにする方法が必要です。これは、イベント テーブルを通過するため、評価テーブルにはありません。
私が正常に使用したクエリ (event_id に基づく) は次のとおりです。
select
s.first_name,
s.last_name,
s.ssn,
e.subject_id,
n.*,
l.Q23
from
subjects s,
events e,
Assessment1 n,
Assessment1a l
where
e.subject_id = s.id
and l.event_id = e.id
and l.Q23 = "1"
and n.event_id = e.id
これを変更して、event_id が異なるが subject_id が同じである評価のデータを取得するにはどうすればよいですか?