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好的,我正在尝试获取这三个表中的所有记录。
表之间的关系是。
一房多房,一房多订
我在下面使用了Query,但我认为这不是我想要的工作方式
因为他们使用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发布于 2014-02-08 02:41:38
对于这种类型的查询,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;这有点投机性。样本数据会让问题变得清晰。
发布于 2014-02-08 02:43:42
难道不是:
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 发布于 2014-02-08 02:44:59
由于左侧的连接,您将获得House的记录,无论是否列出了任何房间或其任何房间都已预订。
会有重复的记录。您将看到每个房间的代号和描述的列表,每个房间的重复数量乘以Room_Book记录数量。
如果希望记录是唯一的,只需查询House表或执行某种类型的group by或使用Select Distinct。
建议:在每个表中显示一些示例条目,然后显示您希望获得的结果集,您将获得更多帮助。
https://stackoverflow.com/questions/21635273
复制相似问题