如何使用SQL匹配?

时间:2013-03-05 13:24:38

标签: mysql sql

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

第一张表

  • ID
  • 响应

第二张表

  • responseid
  • patientid

第三张表

  • patientid

第一个和第二个表格之间的关系位于idresponceid

第三和第二之间的关系在patientid

现在我需要从第一个表和第三个表中检索来自这些表的值,以及与第二个和第三个表中的patientid匹配的帮助。

我该怎么做?

3 个答案:

答案 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 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

答案 2 :(得分:0)

    SELECT first.*
         , third.*
      FROM first
INNER JOIN second  ON ( second.responseid = first.id )
INNER JOIN third   ON ( third.patientid   = second.patientid )
         ;
说实话,没有任何侮辱,如果你自己想出这样的查询有困难,可以考虑对db基础知识和数据库开发进行一些培训,越快越好(只是希望我没有弄错自己。 ..; - ))。