SQLలో మూడు పట్టికలను చేరండి

Sqllo Mudu Pattikalanu Cerandi



రిలేషనల్ డేటాబేస్‌లలో, బహుళ పట్టికల నుండి డేటాను తిరిగి పొందడం చాలా సాధారణం. లక్ష్య ఫలితంపై ఆధారపడి, ఇది బహుళ పట్టికలను ఒకే యూనిట్‌లో చేర్చడం మరియు ఫలిత డేటాను పొందడం.

చేరడం విషయానికి వస్తే, మనలో చాలామంది ప్రధానంగా రెండు పట్టికలు మరియు అలాంటి పరిమితితో పని చేస్తారు. అయినప్పటికీ, మరింత అర్థవంతమైన డేటా లేఅవుట్ మరియు అంతర్దృష్టిని పొందడానికి మూడు పట్టికలను చేరడం సాధారణం. ఉదాహరణకు మీరు చలనచిత్రాల జాబితా, వాటి సంబంధిత అద్దె జాబితా మరియు అసలు అద్దె వివరాలను ఎక్కడ తిరిగి పొందాలనుకుంటున్నారు. చలనచిత్రాలు, ఇన్వెంటరీ మరియు అద్దె వివరాలు వంటి ఈ యూనిట్‌లలో ప్రతి ఒక్కటి వ్యక్తిగత పట్టికలలో ఉంటాయి.

ఈ ట్యుటోరియల్‌లో, SQLలో మూడు టేబుల్‌లలో చేరడానికి మీరు ఉపయోగించే వివిధ జాయిన్‌లు మరియు టెక్నిక్‌ల ద్వారా మేము మిమ్మల్ని నడిపిస్తాము.







అవసరాలు:

ప్రదర్శన ప్రయోజనాల కోసం, మేము MySQL వెర్షన్ 80 మరియు సకిలా నమూనా డేటాబేస్‌ని ఉపయోగిస్తాము. అనుసరించడానికి, మీరు మీ MySQL సర్వర్‌లో సకిలా డేటాబేస్‌ను డౌన్‌లోడ్ చేసి, సెటప్ చేయవచ్చు. మీరు వర్తించేలా భావించే ఏదైనా ఇతర డేటాసెట్‌ని ఉపయోగించడానికి సంకోచించకండి.



SQLలో చేరిన రకాలు

మేము చేరికల అనువర్తనానికి ముందు, SQL డేటాబేస్‌లలో అందుబాటులో ఉన్న వివిధ రకాల చేరికలను చర్చించడం ద్వారా ప్రారంభిద్దాం.



లోపలి చేరండి

మొదటి రకం చేరిక ఒక అంతర్గత చేరిక. ఈ రకమైన చేరిక రెండు పట్టికలలో సరిపోలే విలువను కలిగి ఉన్న అడ్డు వరుసలను మాత్రమే అందిస్తుంది. ఇది చాలా సాధారణ రకం చేరిక మరియు రెండు పట్టికలలో చేరినప్పుడు చాలా సరళమైనది.





వాక్యనిర్మాణం క్రింది విధంగా ఉంది:

నిలువు వరుసలను ఎంచుకోండి

టేబుల్ 1 నుండి

ఇన్నర్ జాయిన్ టేబుల్2 పై table1.column_name = table2.column_name;

ఎడమ చేరండి

LEFT JOIN విషయంలో, ఇది ఎడమ పట్టిక నుండి అన్ని అడ్డు వరుసలను మరియు కుడి పట్టిక నుండి సరిపోలిన అడ్డు వరుసలను అందిస్తుంది. కుడి పట్టిక నుండి సరిపోలే విలువలు లేకుంటే, చేరడం వాటి స్థానంలో NULL విలువలను జోడిస్తుంది.



వాక్యనిర్మాణం క్రింది విధంగా ఉంది:

నిలువు వరుసలను ఎంచుకోండి

టేబుల్ 1 నుండి

ఎడమవైపు చేరండి టేబుల్2 పై table1.column_name = table2.column_name;

కుడి చేరండి

మీరు ఊహించినట్లుగా, కుడి చేరిక అనేది ఎడమ చేరికకు వ్యతిరేకం. ఈ రకమైన చేరికలు కుడి పట్టిక నుండి అన్ని అడ్డు వరుసలను మరియు ఎడమ పట్టిక నుండి సరిపోలే అడ్డు వరుసలను మాత్రమే అందిస్తుంది. ఎడమ పట్టికలో సరిపోలే అడ్డు వరుసలు లేకుంటే, జాయిన్ దానికి NULL విలువలను జోడిస్తుంది.

కుడి చేరిక యొక్క వాక్యనిర్మాణం క్రిందిది:

నిలువు వరుసలను ఎంచుకోండి

టేబుల్ 1 నుండి

కుడి చేరండి పట్టిక 2 పై table1.column_name = table2.column_name;

పూర్తి బయట చేరండి

SQL డేటాబేస్‌లలో మీరు ఎదుర్కొనే తదుపరి రకమైన చేరిక పూర్తి ఔటర్ జాయిన్. కుడి లేదా ఎడమ పట్టికలలో సరిపోలిక ఉన్నప్పుడు ఈ రకమైన చేరిక అన్ని అడ్డు వరుసలను అందిస్తుంది. రెండింటిలో దేనిలోనూ సరిపోలే విలువ లేకుంటే, అది సరిపోలిక లేకుండా పట్టిక నుండి నిలువు వరుసల కోసం NULLని అందిస్తుంది.

కిందిది పూర్తి ఔటర్ జాయిన్ యొక్క సింటాక్స్‌ను ప్రదర్శిస్తుంది:

నిలువు వరుసలను ఎంచుకోండి

టేబుల్ 1 నుండి

పూర్తి వెలుపల చేరండి టేబుల్2 పై table1.column_name = table2.column_name;

అన్ని డేటాబేస్ ఇంజన్లు పూర్తి ఔటర్ జాయిన్‌లకు మద్దతు ఇవ్వవని గుర్తుంచుకోవడం మంచిది. అలాంటి వాటిని సాధించడానికి, మీరు ఇతర రకాల జాయిన్‌లు లేదా సబ్‌క్వెరీలతో పని చేయాల్సి రావచ్చు.

ఉదాహరణలు:

SQLలో మూడు టేబుల్‌లను చేరడానికి ఈ రకమైన జాయిన్‌లను ఎలా ఉపయోగించవచ్చో కొన్ని ఉదాహరణలను అన్వేషిద్దాం.

ఉదాహరణ 1: INNER JOINని ఉపయోగించడం

మేము INNER JOINతో ప్రారంభిస్తాము. మనం సినిమాల జాబితా, అద్దె జాబితా మరియు సంబంధిత అద్దె వివరాలను తిరిగి పొందాలనుకుంటున్నాము.

కింది ఉదాహరణలో చూపిన విధంగా మేము అనుబంధిత పట్టికలలో బహుళ INNER JOINSని ఉపయోగించవచ్చు:

ఎంచుకోండి

ఫిల్మ్. టైటిల్,

inventory.inventory_id,

rental.rental_date

నుండి

చిత్రం

INNER JOIN ఇన్వెంటరీ పై

film.film_id = inventory.film_id

INNER JOIN అద్దె పై

inventory.inventory_id = rental.inventory_id;

ఇచ్చిన ఉదాహరణ ప్రశ్నలో, మేము “film_id” నిలువు వరుస ఆధారంగా ఫిల్మ్ మరియు ఇన్వెంటరీ టేబుల్‌లలో చేరడం ద్వారా ప్రారంభిస్తాము. మేము ఫలిత సెట్‌ని తీసుకొని, 'ఇన్వెంటరీ_ఐడి' కాలమ్ ఆధారంగా అద్దె టేబుల్‌తో కలుపుతాము.

ఇది ప్రాథమిక INNER JOINతో మనం మూడు పట్టికలను చేరేలా చేస్తుంది. ఫలిత సెట్ క్రింది విధంగా ఉంది:

ఉదాహరణ 2: INNER JOIN మరియు LEFT JOINని ఉపయోగించడం

ఇప్పుడు మనకు చలనచిత్రాల జాబితా, అద్దె ఇన్వెంటరీల జాబితా (ఏదైనా ఉంటే) మరియు అనుబంధిత అద్దె వివరాలు కావాలి అని చెప్పండి.

ఒక చలనచిత్రానికి అద్దె ఇన్వెంటరీ లేకపోయినా, మేము దానిని ఫలితంలో చేర్చాలని కూడా మేము నిర్ధారించుకోవాలనుకుంటున్నాము. ఇక్కడే INNER JOIN మరియు LEFT JOIN ఆటలోకి వస్తాయి.

కింది ఉదాహరణను పరిగణించండి:

ఎంచుకోండి

ఫిల్మ్. టైటిల్,

inventory.inventory_id,

rental.rental_date

నుండి

చిత్రం

INNER JOIN ఇన్వెంటరీ పై

film.film_id = inventory.film_id

అద్దెకు చేరండి పై

inventory.inventory_id = rental.inventory_id;

ఈ ఉదాహరణలో, మేము అందుబాటులో ఉన్న ఇన్వెంటరీతో టైటిల్‌లను పొందుతామని నిర్ధారించుకోవడానికి ఫిల్మ్ మరియు ఇన్వెంటరీ పట్టికలో చేరడానికి మేము INNER JOINని ఉపయోగిస్తాము. మేము అద్దె పట్టికలో చేరడానికి ఎడమ చేరికను ఉపయోగిస్తాము, అందుబాటులో ఉంటే అద్దె వివరాలను పొందుతాము మరియు అద్దె చరిత్ర లేని ఏదైనా శీర్షిక కోసం NULL చేస్తాము.

ఫలిత సెట్ క్రింది విధంగా ఉంది:

ముగింపు

ఈ ట్యుటోరియల్‌లో, SQLలోని వివిధ రకాల JOINS గురించి, అవి ఎలా పని చేస్తాయి మరియు మూడు టేబుల్‌లను కలపడానికి వాటిని ఎలా ఉపయోగించవచ్చో తెలుసుకున్నాము.