Hi,
I am having trouble with a question and am wondering if someone knows where I am going wrong.

I am to list the patients of a hospital (persons that have been admitted) that have a next of kin listed as a staff member. I am to list the patient's first name and surname and the staff members first name and surname.

3 tables:
admission
admission_id, patient_id
person
person_id, surname, first_name, Next_of_kin
staff
person_id

I have to answer using joins but I am unable to work it out. So far I have:

SELECT p1.First_name as [Patient First Name], p1.Surname  as [Patient Surname], p2.First_name as [Staff First Name], p2.Surname as [Staff Last Name]
FROM admission a JOIN staff st USING (Patient_id) JOIN person p1 USING (Person_id) JOIN person p2 USING (Person_id)
WHERE a.Patient_id=p1.Person_id and NOT (p1.Person_id=p2.Person_id) and p1.Next_of_kin=st.Person_id and p2.Person_id=st.Person_id;

I am able to figure it out using sub-queries:

SELECT p1.First_name as [Patient First Name], p1.Surname as [Patient Surname], p2.First_name as [Staff First Name], p2.Surname as [Staff Last Name]
FROM admission a, staff st, person p1, person p2
WHERE a.Patient_id=p1.Person_id and NOT (p1.Person_id=p2.Person_id) and p1.Next_of_kin=st.Person_id and p2.Person_id=st.Person_id;

However, I can't figure out how to work it out using Joins.

Any help will be greatly appreciated.

keen to see how this is done, got almost identical problem...

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.