仅按人名过滤

how*_*elf 1 sql sql-server join where-clause

我试图过滤我的结果,只显示一个住在特定城市酒店的人的名字。到目前为止我所拥有的是

select guestName
from Guest
join Hotels on hotelNo=1
Run Code Online (Sandbox Code Playgroud)

但是,当我这样做时,结果页面会列出数据库中的每个来宾名称,而不是留在hotelNo1 中的名称。

Ngu*_*ong 6

你应该把你的条件放在Where子句中。

而且Join应该是这样的

select guestName
from Guest g
join Hotels h on g.HotelId = h.HotelId -- Primary Key of Hotels equals Foreign Key of Guest 
where hotelNo = 1
Run Code Online (Sandbox Code Playgroud)

解释

在Join子句中,您应该解决两个表之间的条件(通常在主键(Hotel表)和外键(Guest表)之间)

在此处输入图片说明

https://www.w3schools.com/sql/sql_join_inner.asp 中的更多详细信息

  • 正确答案!关于连接的重要一点是,确保首先连接列: g.HotelId = h.HotelId 之后,您将获得与连接匹配的结果摘要。之后您可以使用 where 语句进行过滤 (3认同)