经常性流鼻血:sql 重复记录筛选

来源:百度文库 编辑:神马品牌网 时间:2024/05/09 01:50:31
Select distinct hotel.hn,hotel.ar,hotelroom.pc From hotel,hotelroom Where
hotel.id=hotelroom.iid
and hotelroom.pc>100
and hotelroom.pc<400
以上是连表查询出来的 房间价格表,一个酒店包含多个房间
我查询房间价格>100and <400 的有的酒店有2个房间符合这样
hotel.hn(房间名就有了重复) 怎么样消除这些重复我只需要一个结果

7天连锁酒店(深圳东门店) 深圳 罗湖区 桂园路果园东8号 152
7天连锁酒店(深圳东门店) 深圳 罗湖区 桂园路果园东8号 182
7天连锁酒店(深圳华强店) 深圳 福田区 福华路198号 162
7天连锁酒店(深圳华强店) 深圳 福田区 福华路198号 182
999三九大酒店(999 Hotel) 深圳 罗湖区 深南东路1001号 270
999三九大酒店(999 Hotel) 深圳 罗湖区 深南东路1001号 308
以上是结果
帮我筛选成
7天连锁酒店(深圳东门店)
7天连锁酒店(深圳华强店)
999三九大酒店(999 Hotel)
一个酒店取一个房间!

使用DISTINCTROW做谓语试试
Select DISTINCTROW hotel.hn,hotel.ar,hotelroom.pc From hotel,hotelroom Where
hotel.id=hotelroom.iid
and hotelroom.pc>100
and hotelroom.pc<400
我总觉得有问题,改成left join?

Select distinct hotel.hn
From hotel,hotelroom
Where hotel.id=hotelroom.iid
and hotelroom.pc>100
and hotelroom.pc<400

Select distinct hotel.hn,hotel.ar,hotelroom.pc From hotel,hotelroom Where
hotel.id=hotelroom.iid
and hotelroom.pc>100
and hotelroom.pc<400
Group by hotel.id
这样就行了

把你的查询在做唯一索引,这样就可以

门牌号并不重复