sql:加入并查看

sql:加入并查看,sql,select,join,view,Sql,Select,Join,View,在多个表之间使用join来公开视图 我有一个主表,代表一个酒店列表 Hotels( id_hotel, name,address, website) 然后我有另一张代表酒店坐标的表 hotel_coordinates(id_hotel,latitude,longidute) 在代表酒店相关图片的桌子的另一端: hotel_images(hotel_id,image) 第一个表包含的记录与hotels的数量相同,也就是说,如果表中有100个hotels,则表中有100条记录 第二个表包含可变

在多个表之间使用join来公开视图

我有一个主表,代表一个酒店列表

Hotels( id_hotel, name,address, website)
然后我有另一张代表酒店坐标的表

hotel_coordinates(id_hotel,latitude,longidute)
在代表酒店相关图片的桌子的另一端:

hotel_images(hotel_id,image)
第一个表包含的记录与hotels的数量相同,也就是说,如果表中有100个hotels,则表中有100条记录

第二个表包含可变数量的记录,该数字取决于用户为其输入的酒店坐标,例如,可能有50条记录。每个记录由id_酒店唯一标识

第三个表则相反,因为第二个表可以有可变数量的记录作为上传照片的函数,否则每个id_酒店的该表可以有许多记录作为照片的函数,即,例如

第一家酒店有2张照片,已上传至以下2项记录:

     id_hotel  imageSize 1    imageSize2      imageSize3
      1        image1.jpeg     null            null
      1        image2          image3.jpeg     null
我想创建一个必须有100条记录的视图,因为100是酒店的编号,所以每个字段都必须适当地设置(例如:如果有image1,则必须欣赏,但如果有foto_1,则字段必须设置为null)。视图的列将是:

伊杜酒店;名称地址;网站;纬度;经度;fhoto_1;fhoto_2;fhoto_3


如何使用联接使视图显示100条记录?设置为空或值为经纬度fhoto_1 fhoto_2 fhoto_3?

我想这样设置可能会更好

Hotel
---------
(PK) Id
Name
Address
Website

HotelLocation
--------------
(PK) Id
(FK) HotelId
Longitude
Latitude

Photo
-------
(PK) Id
Photo

HotelPhotos
------------
(PK) Id
(FK) HotelId
(FK) PhotoId
您可能会将纬度和经度放在Hotel表中以使其更简单,并在创建表时使字段为空。。。类似于下面的设置

Hotel
---------
(PK) Id
Name
Address
Website
Latitude
Longitude

Photo
-------
(PK) Id
Photo

HotelPhotos
------------
(PK) Id
(FK) HotelId
(FK) PhotoId

考虑从视图的表和预期结果集中给出一些示例数据。可能只需要一个左边的连接,您使用的DBMS是什么?博士后?神谕您正在寻找一个名为“pivot”的特性,但它高度依赖于DBMS。