如何更改SQL以向我提供distinct
个房间类型?我只希望每roomtype_id
个room_id
。如果那有意义的话?基本上如果有3个不同类型的5个房间,只有3个记录应该回来。
以下是当前SQL的一个例子......
SELECT dbo.rooms.room_id,dbo.roomtypes.name, dbo.rooms.roomtype_id
FROM dbo.rooms INNER JOIN dbo.roomtypes ON dbo.rooms.roomtype_id = dbo.roomtypes.roomtype_id
WHERE
(dbo.rooms.room_id NOT IN (SELECT
room_id FROM dbo.booking))
AND( dbo.rooms.roomtype_id >= 4)
答案 0 :(得分:2)
使用DISTINCT
是另一种选择:
SELECT DISTINCT dbo.rooms.roomtype_id
FROM dbo.rooms INNER JOIN dbo.roomtypes ON dbo.rooms.roomtype_id = dbo.roomtypes.roomtype_id
WHERE (dbo.rooms.room_id NOT IN (SELECT room_id FROM dbo.booking))
AND( dbo.rooms.roomtype_id >= 4)
答案 1 :(得分:1)
一种方法是GROUP BY
:
SELECT MAX(dbo.rooms.room_id),MAX(dbo.roomtypes.name), dbo.rooms.roomtype_id
FROM dbo.rooms INNER JOIN dbo.roomtypes ON dbo.rooms.roomtype_id = dbo.roomtypes.roomtype_id
WHERE (dbo.rooms.room_id NOT IN (SELECT room_id FROM dbo.booking))
AND( dbo.rooms.roomtype_id >= 4)
GROUP BY dbo.rooms.roomtype_id