我正在使用以下 3 个表格:
第一张桌子
- ID
- 回复
第二张桌子
- 响应号
- 患者编号
第三张表
- 患者编号
第一个和第二个表之间的关系是 onid
和responceid
。
第三和第二之间的关系是on patientid
。
现在,我需要借助与第二个和第三个表的匹配来从这些表中检索值,例如第一个和第三个表中的所有值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
要进一步了解有关联接的更多信息,请访问以下链接:
您可能正在寻找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
尝试
SELECT first.*
, third.*
FROM first
INNER JOIN second ON ( second.responseid = first.id )
INNER JOIN third ON ( third.patientid = second.patientid )
;
老实说,没有侮辱的意思,如果你自己想出这样的查询有困难,考虑一些关于数据库基础和数据库开发的培训,越早越好(只是希望我自己没有犯错……; -))。