tbl_House
House_Code (Unique, PK)
Description
tbl_Room
Room_id(pk, auto increment)
House_Code
room_name
available_date
tbl_RoomBook
book_id
House_Code
Room_id
Checkin
Checkout
好的,我正试图从这三张表中获取所有记录。
表之间的关系是。
一间有许多房间的房子和一间有许多预订记录的房间
我使用了下面的查询,但我不认为这完全按照我想要的方式运作
因为他们使用house_code保持唯一性......(我想。)
SELECT H.house_code, H.description
FROM House H
LEFT OUTER JOIN Room R
ON H.house_code = R.house_code
LEFT OUTER JOIN Room_Book RB
ON H.house_code = RB.house_code
答案 0 :(得分:0)
对于此类查询,inner join
应该没问题。没有理由认为代码会出现在主表中未定义的其中一个表(例如room
)中。
但是,您的上一次加入应该也包括房间ID:
SELECT H.house_code, H.description
FROM House H INNER JOIN
Room R
ON H.house_code = R.house_code INNER JOIN
Room_Book RB
ON H.house_code = RB.house_code RB.Room_Id = R.Room_Id;
这有点推测。样本数据可以解决问题。
答案 1 :(得分:0)
不是吗:
SELECT H.house_code, H.description
FROM House H
INNER JOIN Room R
ON H.house_code = R.house_code
INNER JOIN Room_Book RB
ON H.house_code = RB.Room_id
答案 2 :(得分:0)
由于左连接,您将获得House记录是否列出任何房间或其任何房间已被预订。
会有重复的记录。您将看到每个房屋代码和说明的列表,重复多个房间乘以Room_Book记录计数。
如果您希望记录是唯一的,只需查询House表或执行某种类型的分组或使用Select Distinct。
建议:在每个表格中显示一些示例条目,然后显示您想要的结果集,您将获得更多帮助。