我有以下表格:
Equipments { id, description }
Loans { id, date, equipmentId, userId }
Users { id, name, login }
我需要显示所有设备和最后一次借用此设备的用户的姓名。如果设备没有借出行,则仍然需要归还设备,但使用人为空。
我尝试将merge query用作新的查询,但是当我选择users.name列时,由于存在多对多关系,行数会增加。
如何才能仅返回每个设备的最后一个用户或为空?
发布于 2019-08-31 00:34:45
这是一个SQL解决方案,您需要一次性完成这项工作吗?这绝对不是无关紧要的。解决方案或类似的各种尝试很可能已经在这里了。我不是专家,但是:这将需要一个外部连接,以确保在贷款中没有条目的地方返回一行。您首先需要减少贷款,以便为每个设备ID选择最大日期,并仅包括这些行。我假设一天只能有一次贷款?或者,如果贷款ID是按顺序分配的,则可以使用贷款ID。这样就得到了一个表,其中包含除用户名之外的所有信息,该表可以通过连接获得,并且只从所需的结果中获取列。希望这能有所帮助。
https://stackoverflow.com/questions/57728975
复制相似问题