我不確定我需要什麼類型的JOIN。我有一個表是people
。 people
表具有id
,lastname
,firstname
,title
,departmentid
和phone
。 第二個表格是department
。 department
表具有id
,name
,roomid
和telephone
。 第三張表是peoplerooms
。 peoplerooms
只有peopleid
和roomid
字段。 第四張表是rooms
。 rooms
具有id
,name
和roomnumber
。Oracle在3個表格上加入2-3個查找
的目標是查詢people
和(使用departmentid
從department
表)返回people.id
,lastname
,firstname
,title
,name
,也room.name
使用peoplerooms
找到所有房間的peopleid
了。
people table
- id
- lastname
- firstname
- title
- departmentid
- phone
sample people data
1|smith|will|director|2|555-555-5555
2|doe|jane|director|3|555-333-4545
peoplerooms table
- peopleid
- roomid
sample peoplerooms data
1|10
2|5
rooms table
- id
- name
- roomnumber
sample rooms data
3|Room C|100C
5|Room B|100B
10|Room A|100A
department table
- id
- name
- roomid
- phone
sample department data
3|Radiology|5|555-454-4444
2|Billing|3|656-555-6656
我有以下SQL工作,但我不是在部門名稱拉......我只得到people.departmentid,我需要查找部門,而是讓department.name。
SELECT people.lastname, people.firstname, people.departmentid, people.title, room.roomnumber, people.phone
FROM room
JOIN peopleroom ON room.id = peopleroom.roomid
JOIN people ON peopleroom.peopleid = people.id
ORDER BY people.lastname
它返回象3分的結果,而不是30的結果是每個部門之一。它以我不需要的方式限制它。 – donlaur
有沒有部門的房間?更具體地說:每個房間都有'room'的'department'條目嗎? –
部門有房間和人有房間。在這個電話會議上,我更關心的是我可以得到每個人的部門名稱。 – donlaur