两个表之间的内部联接

时间:2017-04-30 20:10:25

标签: php mysql join

我正在尝试创建一个内连接,将两个MySQL表连接在一起(患者和约会表)。我在一张桌子上显示所有患者预约,包括他们的患者身份证号码。该患者ID应将患者(名字+姓氏)显示为姓名而不是他们的身份证号码。如果有人可以帮我创建一个值得赞赏的查询语句。我对MySQL很新,所以后续解释会非常有用。

这是我希望加入约会表的患者表的结构:

[![在此处输入图像说明] [1]] [1]

这是约会表的结构:

enter image description here

这是我试图实现的查询语句,试图在约会表中显示患者的全名。

    function getAllCustomers(){
    $sql = "
SELECT a.appointmentid
     , a.doctorid
     , a.appointmentdate
     , a.appointmenttime
     , p1.Name
     , p2.Name
  FROM appointment
  JOIN patients p1
    ON patientid = p1.firstname
  JOIN patients p2
    ON patientid = p2.lastname;
";

    [1]: https://i.stack.imgur.com/54kMn.png

1 个答案:

答案 0 :(得分:1)

不要将同一个表连接两次,也不要将字符串与整数进行比较。我想像是这样的事情:

SELECT a.appointmentid, 
       concat(p.firstname, ' ', p.lastname) as fullname_patient, 
       concat(d.firstname, ' ', d.lastname) as fullname_doctor
FROM appointment as a
INNER JOIN patients as p
ON a.patientid = p.patientid
inner join doctors as d
on a.doctorid = d.doctorid

会为您提供所需的信息。

concat函数连接给定的值,使用逗号分隔每个值。