我正在使用以下3个表格:
第一张表
第二张表
第三张表
第一个和第二个表格之间的关系位于id
和responceid
。
第三和第二之间的关系在patientid
。
现在我需要从第一个表和第三个表中检索来自这些表的值,以及与第二个和第三个表中的patientid
匹配的帮助。
我该怎么做?
答案 0 :(得分:2)
基本上,如果定义其关系的所有列都不可为空,那么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
要进一步了解联接,请访问以下链接:
答案 1 :(得分:1)
您可能一般都在寻找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
答案 2 :(得分:0)
试
SELECT first.*
, third.*
FROM first
INNER JOIN second ON ( second.responseid = first.id )
INNER JOIN third ON ( third.patientid = second.patientid )
;
说实话,没有任何侮辱,如果你自己想出这样的查询有困难,可以考虑对db基础知识和数据库开发进行一些培训,越快越好(只是希望我没有弄错自己。 ..; - ))。