SQL 视图错误修正:vw_RoomDevice 视图的正确写法
SQL 视图错误修正:vw_RoomDevice 视图的正确写法
以下是对视图 'vw_RoomDevice' 中错误的修正:
CREATE VIEW vw_RoomDevice AS
SELECT r.UserID, rd.Username, r.RoomName, d.DeviceName,
dy.SensorType, dy.SensorValue, dy.Timestamp,
d.DeviceType, dr.StatusName
FROM userb rd
INNER JOIN Room r ON r.UserID = rd.UserID
INNER JOIN Device d ON d.RoomID = r.RoomID
INNER JOIN DeviceStatus dr ON dr.StatusID = d.StatusID
INNER JOIN SensorData dy ON dy.DataID = d.DeviceID
INNER JOIN RoomDevice rt ON rt.RoomID = r.RoomID;
修正说明:
- 在
INNER JOIN Room r ON r.UserID = rd.UserID中,将r.UserID = r.UserID改为r.UserID = rd.UserID,以正确地连接userb表和Room表。 - 在
INNER JOIN Device d ON d.DeviceID = r.UserID中,将d.DeviceID = r.UserID改为d.RoomID = r.RoomID,以正确地连接Room表和Device表。 - 在
INNER JOIN DeviceStatus dr ON dr.StatusID = r.RoomID中,将dr.StatusID = r.RoomID改为dr.StatusID = d.StatusID,以正确地连接Device表和DeviceStatus表。 - 在
INNER JOIN SensorData dy ON dy.DataID = r.RoomID中,将dy.DataID = r.RoomID改为dy.DataID = d.DeviceID,以正确地连接Device表和SensorData表。 - 在
INNER JOIN RoomDevice rt ON r.RoomID = r.UserID中,将r.RoomID = r.UserID改为rt.RoomID = r.RoomID,以正确地连接Room表和RoomDevice表。
通过以上修正,确保了各个表之间的正确连接,从而构建出符合预期的 'vw_RoomDevice' 视图。
原文地址: https://www.cveoy.top/t/topic/pf1h 著作权归作者所有。请勿转载和采集!