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' 视图。

SQL 视图错误修正:vw_RoomDevice 视图的正确写法

原文地址: https://www.cveoy.top/t/topic/pf1h 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录