我使用了3個表:如何使用SQL來匹配這個?
第一臺
- ID
- 響應
二表
- responseid
- patientid
第三表
- patientid
第一和第二表之間的關係是在id
和responceid
。
第三個和第二個之間的關係在patientid
。
現在我需要從第二張和第三張表中匹配patientid
,像第一張和第三張表中的所有值一樣從這些表中檢索值。
我該怎麼做?
我使用了3個表:如何使用SQL來匹配這個?
第一臺
二表
第三表
第一和第二表之間的關係是在id
和responceid
。
第三個和第二個之間的關係在patientid
。
現在我需要從第二張和第三張表中匹配patientid
,像第一張和第三張表中的所有值一樣從這些表中檢索值。
我該怎麼做?
你可能一般找INNER JOIN
或JOIN
:
SELECT
response.id,
response.responce,
patient.patientid
FROM
`response_table` as `response`
INNER JOIN
`relation_table` as `relation`
ON
relation.responceid = response.id
INNER JOIN
`patient_table` as `patient`
ON
relation.patientid = patient.patientid
基本上,如果所有定義他們的關係列不可爲空,則INNER JOIN
就足夠了。但是,如果它們是可爲空並且您仍然希望顯示來自firstTB
的所有記錄,則需要使用LEFT JOIN
而不是INNER JOIN
。
SELECT a.*, b.*, c.*
FROM firstTB a
INNER JOIN secondTB b
ON a.ID = b.responceID
INNER JOIN thirdTB c
ON b.patientID = c.patientID
爲了進一步獲得更多的知識有關加入,請訪問以下鏈接:
嘗試
SELECT first.*
, third.*
FROM first
INNER JOIN second ON (second.responseid = first.id)
INNER JOIN third ON (third.patientid = second.patientid)
;
說實話,並沒有侮辱意,如果你很難提出像這樣的查詢喲你自己,考慮一些關於數據庫基礎知識和數據庫開發的培訓,越快越好(只是希望我沒有錯過自己...... ;-))。
感謝您的鏈接! – Aris 2013-03-05 15:32:50
@歡迎您':D' – 2013-03-05 15:34:23