我有一张主表tblAssetMaster A
和一张移动表tblMovement M
。 我想提取所有资产及其当前位置,因此需要获取每个资产的最新动作条目。
字段
我查看了各种连接,子查询,派生查询,并且我对信息过载感到困惑。什么是最有效(最简单)的方法来检索这些信息。
答案 0 :(得分:1)
您可以使用具有按AssetID
分组的最新MovementID的内部联接select A.AssetID, A.AssetName, M.MovementID, M.CurrentLocation, LocationUpdated
FROM tblAssetMaster A
INNER JOIN tblMovement M ON A.AssetID = M.AssetID
INNER JOIN (
select
M.AssetID
max(M.MovementID) my_mov_id
from tblMovement M
group by M.AssetID
) T ON T.AssetID = M.AssetID AND T.my_mov_id = M.MovementID
答案 1 :(得分:0)
看起来好像用简单的回合写下它有助于解决这个问题:
SELECT A.AssetID, A.AssetName, M.MovementID, M.CurrentLocation, LocationUpdated
FROM tblAssetMaster A
LEFT JOIN tblMovement M ON
A.AssetID = M.AssetID AND M.MovementID=
(SELECT MovementID FROM tblMovement M WHERE M.AssetID=A.AssetID ORDER BY LocationUpdated DESC LIMIT 1)