2017-04-30 219 views
-1

我正在嘗試創建一個將兩個MySQL表連接在一起的內部連接(患者和約會表)。我在一張表格中顯示了所有的患者預約,其中包括患者的身份證號碼。該患者ID應該顯示患者(名字+姓氏)作爲全名而不是他們的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

請閱讀「SQL連接入門」https://www.w3schools.com/sql/sql_join.asp – niksofteng

+0

「患者約會,其中包括他們的患者ID號,該患者ID應顯示患者...全名不是他們的ID數。」你想要什麼? ID或不ID,這就是問題所在。一個ID顯示一個ID。 –

回答

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函數連接給定的值,使用逗號分隔每個值。