LEFT OUTER JOINs का उपयोग करके, आप 3 प्रश्नों को इस प्रकार कर सकते हैं:-
SELECT vehicles.ID
FROM vehicles
INNER JOIN insurance i1
ON vehicles.ID = i1.vehicle_ID
LEFT OUTER JOIN insurance i2
ON i1.vehicle_ID = i2.vehicle_ID
AND i2.expire > i1.expire
WHERE i2.id IS NULL
AND i1.expire < NOW()
यहां यह किसी भी बाद की बीमा समाप्ति तिथियों के लिए एक बाएं बाहरी जुड़ाव करता है, और i2.id के लिए जांच करता है कि यह सुनिश्चित करने के लिए कि बाद में कोई समाप्ति तिथि नहीं मिली है, और फिर यह जांचने के लिए कि यह समाप्त हो गया है, की समाप्ति तिथि की जांच करता है।
SELECT vehicles.ID
FROM vehicles
LEFT OUTER JOIN insurance i1
ON vehicles.ID = i1.vehicle_ID
WHERE i1.id IS NULL
यह सिर्फ यह जांचता है कि कोई मेल खाता बीमा रिकॉर्ड तो नहीं है
SELECT vehicles.ID
FROM vehicles
INNER JOIN insurance i1
ON vehicles.ID = i1.vehicle_ID
LEFT OUTER JOIN insurance i2
ON i1.vehicle_ID = i2.vehicle_ID
AND i2.expire > i1.expire
WHERE i2.id IS NULL
AND i1.expire >= NOW()
पहली क्वेरी के समान, यह किसी भी बाद की बीमा समाप्ति तिथियों के लिए एक बायां बाहरी जुड़ाव करता है, और i2.id के लिए जांच करता है ताकि यह सुनिश्चित हो सके कि बाद में कोई समाप्ति तिथि नहीं मिली है, और फिर यह जांचने के लिए कि समाप्ति तिथि समाप्त नहीं हुई है, की जांच करता है। ।