Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
内部联接SQL查询_Sql - Fatal编程技术网

内部联接SQL查询

内部联接SQL查询,sql,Sql,下一个sql语句工作正常。它同时显示patient_id和serv_name,但我尝试显示patient_name而不是patient_id SELECT C1.patient_id, S.serv_name FROM Checkup_Details C INNER JOIN Services S ON (C.serv_id=S.serv_id), Checkup C1 WHERE C1.today = DATE() AND C1.check_id=C.chec

下一个sql语句工作正常。它同时显示patient_id和serv_name,但我尝试显示patient_name而不是patient_id

SELECT  C1.patient_id, S.serv_name
FROM
    Checkup_Details C
    INNER JOIN Services S ON (C.serv_id=S.serv_id),
    Checkup C1
WHERE
    C1.today = DATE() AND C1.check_id=C.check_id
ORDER BY C.check_id
那么,我应该如何通过添加这个sql语句来实现这一点呢

INNER JOIN Patient P ON (C1.patient_id=P.patient_id)

但是我不知道有多精确。

假设现场患者的名字在检查细节中,你必须

SELECT C1.patient_name ...
取而代之的是

SELECT C1.patient_id ...

只需添加internaljoin子句即可获得表Patient的列,并通过p.Patient\u名称更改C1.Patient\u id

SELECT P.patient_name, S.serv_name
FROM
    Checkup_Details C
    INNER JOIN Services S ON (C.serv_id=S.serv_id),
    INNER JOIN Patient P ON (C1.patient_id=P.patient_id)
    Checkup C1
WHERE
    C1.today = DATE() AND C1.check_id=C.check_id
ORDER BY C.check_id

您不应该混合使用隐式和显式
join
语法。一条简单的规则:在
from
子句中不要使用逗号:

SELECT C1.patient_id, S.serv_name
FROM Checkup_Details C  INNER JOIN
     Services S
     ON C.serv_id = S.serv_id INNER JOIN
     Checkup C1
     ON C1.check_id = C.check_id INNER JOIN
     Patient P
     ON C1.patient_id = P.patient_id
WHERE C1.today = DATE()
ORDER BY C.check_id;