我的数据库中有一个租用模式。
它有 3 个表,user、rentingTrack 和 lock。
用户具有唯一元素 RFIDCode。在rentingTrack 中,我可能有用户(他或她至少租过一次)或没有用户(他/她从未租过)。如果用户租用我需要最后一次租用的 returnLock,因为rentingID 是自动递增的,它是 max(rentingID)。使用锁表我得到了parkingID,我需要的数据。
问题是如何获取parkingID,我有一半的查询:
SELECT u.userID, l.parkingID
FROM locks l, user u
LEFT JOIN (SELECT r1.* FROM rentingTrack r1 INNER JOIN
(SELECT userID, MAX(rentingID) maxRentingID FROM rentingTrack GROUP BY userID) r2
on r1.rentingID = r2.maxRentingID) r on u.userID = r.userID
WHERE u.userCodeRFID= 3166681355
我需要的是,如果 userID 不在rentingTrack 表中,我得到:
userID | parkingID
----------+-----------
34 | NULL
如果 userID 在rentingTrack
userID | parkingID
----------+-----------
34 | 5
如何完成查询以获取parkingID?