Ravindra BagaleCourses & study guides Track your progress

15. INNER JOIN आणि LEFT JOIN (आधी लागणारे दोन joins)

15.5 Practice: Customer ची नावं आणि hubs सोबत shipments

का (Why). Logistics team रोज मागते तशी ही यादी आहे: प्रत्येक shipment सोबत customer चं नाव आणि hub, आणि problems स्पष्ट दाखवलेले.

काय (What). एकाच query मध्ये तीन tables join करता. Shipments डावीकडचा table आहे, म्हणून प्रत्येक shipment राहते. Customers आणि hubs LEFT JOIN ने जोडले जातात, आणि hub रिकामा का आहे ते CASE expression सांगतो.

कसं (How). FROM shipments ने सुरू करा, customers LEFT JOIN करा, मग hubs LEFT JOIN करा, आणि hub_status column जोडा.

पायऱ्या

  1. आधी अपेक्षित आकडा लिहा: प्रत्येक shipment साठी एक, म्हणजे 10 rows.
  2. उदाहरण run करा.
  3. 10 rows आहेत आणि प्रत्येक customer चं नाव भरलेलं आहे ते तपासा.
  4. hub_status वाचा: 8 shipments साठी OK, 1009 साठी Hub not found, 1010 साठी Hub missing.

उदाहरणे

उदाहरण 1 · dataset: swiftship_logistics

SELECT s.shipment_id,
       c.customer_name,
       h.hub_code,
       CASE
         WHEN s.hub_id IS NULL THEN 'Hub missing'
         WHEN h.hub_id IS NULL THEN 'Hub not found'
         ELSE 'OK'
       END AS hub_status
FROM shipments AS s
LEFT JOIN customers AS c ON c.customer_id = s.customer_id
LEFT JOIN hubs AS h ON h.hub_id = s.hub_id
ORDER BY s.shipment_id;

Output

shipment_idcustomer_namehub_codehub_status
1001Kavya TradersPNQ-01OK
1002Kavya TradersPNQ-01OK
1003Desai PharmaBOM-02OK
1004Al Noor FoodsDXB-01OK
1005Al Noor FoodsDXB-01OK
1006Thames BooksLHR-03OK
1007Lotus CraftsPNQ-01OK
1008Desai PharmaBOM-02OK
1009Thames BooksNULLHub not found
1010Lotus CraftsNULLHub missing

Meaning. सगळ्या 10 shipments customer च्या नावांसह दिसतात. 1009 साठी Hub not found आहे, कारण hub 9 अस्तित्वात नाही. 1010 साठी Hub missing आहे, कारण त्याचा hub आत्ता माहीत नाही. Team त्या दोन source मध्ये दुरुस्त करू शकते.

Ravindra Bagale's Tip

Check s.hub_id IS NULL before h.hub_id IS NULL in the CASE. Both are NULL-related, but only the first one means the shipment's own hub value is unknown.