簡體   English   中英

多個表上的mysql和外鍵關系

[英]mysql and foreign key relationships over multiple tables

我一直很難找到一種檢索數據的方法-我需要一種遍歷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,在此示例中為評估1和評估1a。 但是我需要一種能夠基於subject_id進行鏈接的方法,該主題不在評估表中,因為它通過了Events表。

我已成功使用的查詢(基於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的評估數據?

如何修改此值以提取具有不同event_id但具有相同subject_id的評估數據?

我認為這就是您所需要的。

SELECT *
FROM subjects s
JOIN events e1 ON e1.subject_id = s.id
JOIN events e2 ON e2.subject_id = s.id and e1.id != e2.id
JOIN assessment1 a1 ON a1.event_id = e1.id
JOIN assessment2 a2 ON a2.event_id = e2.id

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM