2017-08-07 4 views
0

参加し、患者IDやスタッフのIDはid.staffpid.patientている一意キーと外部キーがあります特定のスタッフ、すなわちジョン・スミス、どうすればそれを明示的に行うのですか?SQL明示このリレーショナル・スキーマを使用してフィルタ条件

私は暗黙のうちに管理していますが、これは一種の厄介なことですが、WHEREステートメントを使わなければそれには到達できません。

私が試してみるといつでも助けてくれるでしょうINNER JOIN単純な結合でなければ壁に当たっているようです。

SELECT p.* 
FROM appointment AS a 
    INNER JOIN staff AS s ON a.staffID = s.pID 
    INNER JOIN patient AS p ON a.patientID = p.pID 
WHERE s.ID = <yourstaffid>; 

答えて

2

これはあなたが探しているクエリの種類です:あなたは、内側が正常に動作する必要があり、次のような

select 
     a.pID 
     , a.pFname 
     , a.pLname 
     , a.bdate 
     , a.address 
     , a.phone 
     , b.aptDate 
     , b.aptTime 
     , c.fname 
     , c.lname 
     , c.role 
    from patient a 
    INNER JOIN appointment b on b.patientID = a.pID 
    INNER JOIN staff c on b.staffID = c.ID on concat(fname, ' ', lname) ='John Smith' 
1

select distinct pFname, pLname 
from patient p 
    join appointment a on p.pID = a.patientID 
    join staff s on a.staffID = s.ID 
where s.fname = 'John' and s.lname = 'Smith' 
1

何かに参加使用することができます

0
select staff.fname, staff.role, 
patient.pfname, plname, appoitment.aotdate 
from staff, patient, appointment 
where patient.pid=appointment.patientId 
and staff.id=appointment.staffid 
関連する問題