我试图从两个不同的表中列出两个属性(booking.roomno和room.price),条件是“ booking.DATETO不为空”。
表:预订!桌子:房间!
我尝试使用此命令
select booking.roomno,room.price
from booking
inner join room on booking.ROOMNO=room.roomno
where booking.dateto is not null
尽管返回的结果带有重复的房号和价格,如下所示
最佳答案
room.roomno
不是唯一的。它仅在给定的酒店中唯一,并且您的房间表包含多个酒店。您还必须在加入条件中指定hotelno。另外,由于您可能在同一房间进行多次预订(即预订表中有重复的预订),因此您需要执行DISTINCT来防止这种情况发生(但随后您必须在字段列表中包括hotelno列):
select DISTINCT booking.roomno,room.price, room.hotelno
from booking
inner join room on booking.ROOMNO=room.roomno
AND booking.hotelno=room.hotelno
where booking.dateto is not null
关于mysql - 使用内部联接时,MYSQL结果重复,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29726986/