2017-04-30 22 views
-1

2つのMySQLテーブル(patientテーブルとappointmentsテーブル)を一緒に接続する内部結合を作成しようとしています。私は患者のID番号を含む患者の予定のすべてをテーブルに表示しています。その患者のIDは患者の氏名ではなくフルネームで患者名(姓+名)を表示する必要があります。もし誰かが私が助けてくれれば評価されるクエリステートメントを作成することができます。私はかなりMySQLに新しいので、フォローアップの説明は非常に役立つだろう。2つのテーブル間の内部結合

これは私が予定表に参加したいと思っていた患者テーブルの構造である:

[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

患者のID番号を含む「SQL結合の入門」https://www.w3schools.com/sql/sql_join.asp – niksofteng

+0

「患者の予定」を読んでください。数。"なんでしょう? IDかどうかは問われません。 IDはIDを表示します。 –

答えて

1

同じテーブルを2回結合しないでください。また、文字列と整数を比較しないでください。私は次のように思う:

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関数は、与えられた値を連結し、コンマを使用して各値を区切ります。

関連する問題