0

我正在使用以下 3 个表格:

第一张桌子

  • ID
  • 回复

第二张桌子

  • 响应号
  • 患者编号

第三张表

  • 患者编号

第一个和第二个表之间的关系是 onidresponceid

第三和第二之间的关系是on patientid

现在,我需要借助与第二个和第三个表的匹配来从这些表中检索值,例如第一个和第三个表中的所有值patientid

我怎样才能做到这一点?

4

3 回答 3

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

要进一步了解有关联接的更多信息,请访问以下链接:

于 2013-03-05T13:29:03.157 回答
1

您可能正在寻找INNER JOINJOIN一般而言:

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
于 2013-03-05T13:28:56.870 回答
0

尝试

    SELECT first.*
         , third.*
      FROM first
INNER JOIN second  ON ( second.responseid = first.id )
INNER JOIN third   ON ( third.patientid   = second.patientid )
         ;

老实说,没有侮辱的意思,如果你自己想出这样的查询有困难,考虑一些关于数据库基础和数据库开发的培训,越早越好(只是希望我自己没有犯错……; -))。

于 2013-03-05T13:33:33.620 回答