データベースにレンタル スキーマがあります。
user、rentingTrack、lock の 3 つのテーブルがあります。
ユーザーは一意の要素として RFIDCode を持っています。レンタルトラックでは、ユーザーがいる場合があります(少なくとも一度はレンタルしたことがある)か、ない場合があります(一度もレンタルしたことがありません)。ユーザーがレンタルした場合、最後のレンタルの 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を取得するにはどうすればよいですか?