我正在尝试创建一个内连接,将两个MySQL表连接在一起(患者和约会表)。我在一张桌子上显示所有患者预约,包括他们的患者身份证号码。该患者ID应将患者(名字+姓氏)显示为姓名而不是他们的身份证号码。如果有人可以帮我创建一个值得赞赏的查询语句。我对MySQL很新,所以后续解释会非常有用。
这是我希望加入约会表的患者表的结构:
[![在此处输入图像说明] [1]] [1]
这是约会表的结构:
这是我试图实现的查询语句,试图在约会表中显示患者的全名。
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
答案 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函数连接给定的值,使用逗号分隔每个值。