sql:加入并查看
在多个表之间使用join来公开视图 我有一个主表,代表一个酒店列表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条记录 第二个表包含可变
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。