14. Tables join का होतात: Keys आणि Relationships
14.4 Practice: आधी कागदावर shipments आणि hubs जुळवा
का (Why). आधी थोडे rows हाताने जुळवले की join ने नक्की काय यायला हवं ते कळतं. मग SQL चा result बरोबर आहे की नाही ते ठरवता येतं.
काय (What). कागदावर प्रत्येक shipment घ्या, त्याचा hub_id वाचा, आणि hubs मध्ये तोच hub_id शोधा. तीन निकाल नोंदवा: एक match, hub अस्तित्वात नाही म्हणून match नाही, आणि hub नसलेला आहे म्हणून match नाही.
कसं (How). Shipments त्यांच्या hub_id सोबत, आणि hubs यांची यादी काढा, आणि कुठलाही join चालवण्याआधी स्वतः जुळवा.
पायऱ्या
- पहिलं उदाहरण run करा आणि दहा shipments कागदावर उतरवा.
- दुसरं उदाहरण run करा आणि त्यांच्या बाजूला पाच hubs लिहा.
- प्रत्येक shipment पासून त्याच्या hub पर्यंत रेघ ओढा; 8 रेघा व्हायला हव्यात.
- 1009 ला hub सापडला नाही आणि 1010 ला hub नाही असं लिहा, आणि hub 5 Singapore ला एकही रेघ मिळत नाही ते बघा.
उदाहरणे
उदाहरण 1 · dataset: swiftship_logistics
SELECT shipment_id, customer_id, hub_id
FROM shipments
ORDER BY shipment_id;Output
| shipment_id | customer_id | hub_id |
|---|---|---|
| 1001 | 201 | 1 |
| 1002 | 201 | 1 |
| 1003 | 202 | 2 |
| 1004 | 203 | 3 |
| 1005 | 203 | 3 |
| 1006 | 204 | 4 |
| 1007 | 205 | 1 |
| 1008 | 202 | 2 |
| 1009 | 204 | 9 |
| 1010 | 205 | NULL |
Meaning. दहा shipments. आठ चा hub_id hubs मध्ये आहे, 1009 चा 9 आहे, आणि 1010 चा NULL आहे.
उदाहरण 2 · dataset: swiftship_logistics
SELECT hub_id, hub_code, city
FROM hubs
ORDER BY hub_id;Output
| hub_id | hub_code | city |
|---|---|---|
| 1 | PNQ-01 | Pune |
| 2 | BOM-02 | Mumbai |
| 3 | DXB-01 | Dubai |
| 4 | LHR-03 | London |
| 5 | SIN-01 | Singapore |
Meaning. पाच hubs. Singapore (hub 5) ची अजून एकही shipment नाही, म्हणून त्याच्यापर्यंत एकही रेघ जात नाही.
Ravindra Bagale's Tip
Write down your expected row count before you run a join. If SQL returns a different number, find out why before you use the result.
Ravindra Bagale's Tip – मराठी
Join चालवण्याआधी अपेक्षित rows चा आकडा लिहून ठेवा. SQL वेगळा आकडा देत असेल तर result वापरण्याआधी त्याचं कारण शोधा.
Ravindra Bagale's Tip – हिंदी
Join चलाने से पहले अपेक्षित rows की गिनती लिख लीजिए। SQL अलग संख्या दे तो result इस्तेमाल करने से पहले कारण ढूँढिए।