【发布时间】:2014-03-19 13:24:05
【问题描述】:
我是否使用多个表之间的连接来公开视图
我有一个代表酒店列表的主表
Hotels( id_hotel, name,address, website)
然后我有另一个表格,代表酒店的坐标
hotel_coordinates(id_hotel,latitude,longidute)
在表格的另一端,代表与酒店相关的图片:
hotel_images(hotel_id,image)
第一个表包含和hotels一样多的记录,即如果表中有100家酒店就有100条记录
第二个表包含可变数量的记录,这个数量取决于他输入酒店坐标的用户,例如可能有50条记录。每条记录都由 id_hotel 唯一标识
取而代之的是第三个表,因为第二个表可以有可变数量的记录作为已上传照片的函数,否则此表对于每个 id_hotel 可以有多个记录作为照片的函数,即,例如,
第一家酒店有 2 张照片已上传,这 2 条记录:
id_hotel imageSize 1 imageSize2 imageSize3
1 image1.jpeg null null
1 image2 image3.jpeg null
我想创建一个必须有 100 条记录的视图,因为 100 是酒店的编号,那么每个字段都必须适当设置(例如:如果有 image1 则必须赞赏,但如果有 foto_1字段必须设置为 null) 。视图的列将是:
id_hotel;姓名;地址;网站;纬度;经度;照片_1;照片_2; fphoto_3;
如何使用联接来获得显示 100 条记录的视图?并设置为null或取值经纬度fhoto_1 fhoto_2 fhoto_3?
【问题讨论】:
-
考虑从表格和视图的预期结果集中提供一些示例数据。
-
你可能只需要一个左连接
-
您使用的是哪个 DBMS?后格雷斯?甲骨文?您正在寻找一个名为“pivot”的功能,但它高度依赖于 DBMS。