ఈ ట్యుటోరియల్ ఒక పట్టికను దానితో విలీనం చేయడానికి మరియు అనుకూలీకరించిన డేటాను సృష్టించడానికి MySQL సెల్ఫ్-జాయిన్ను ఎలా ఉపయోగించాలో మీకు చూపుతుంది.
ప్రాథమిక వినియోగం
MySQL సెల్ఫ్-జాయిన్ మీరు ఒకే స్టేట్మెంట్ను ఒక స్టేట్మెంట్లో ఒకటి కంటే ఎక్కువసార్లు రిపీట్ చేయకుండా ఉండేలా టేబుల్ అలియాస్లను ఉపయోగిస్తుంది.
గమనిక: మీకు టేబుల్ అలియాస్లు తెలియకపోతే, కాన్సెప్ట్ను పూర్తిగా వివరించే మా ఇతర ట్యుటోరియల్ని పరిగణించండి.
స్వీయ-జాయిన్ ఉపయోగించడానికి సాధారణ వాక్యనిర్మాణం రెండు పట్టికలను కలిపేటప్పుడు ఒకదానితో సమానంగా ఉంటుంది. అయితే, మేము టేబుల్ అలియాస్లను ఉపయోగిస్తాము. దిగువ చూపిన ప్రశ్నను పరిగణించండి:
ఎంచుకోండి alias1.cols,అలియాస్ 2..కోల్స్ నుండి tbl1 అలియాస్ 1,tbl2 అలియాస్ 2 ఎక్కడ [పరిస్థితి]
ఉదాహరణ వినియోగ కేసులు
MySQL స్వీయ చేరికలను ఎలా నిర్వహించాలో అర్థం చేసుకోవడానికి ఉదాహరణలను ఉపయోగిద్దాం. కింది సమాచారంతో మీ వద్ద డేటాబేస్ ఉందని అనుకుందాం (దిగువ పూర్తి ప్రశ్న చూడండి)
డ్రాప్ స్కీమా IF EXISTS స్వీయ;సృష్టించు స్కీమా స్వీయ;
వా డు స్వీయ;
సృష్టించు పట్టిక వినియోగదారులు(
id INT ప్రాథమిక కీ AUTO_INCREMENT ,
మొదటి పేరు వార్చర్ (255),
ఇమెయిల్ వార్చర్ (255),
చెల్లింపు_ఐడి INT ,
చందా INT
);
ఇన్సర్ట్ INTO వినియోగదారులు(మొదటి పేరు,ఇమెయిల్,చెల్లింపు_ఐడి,చందా) విలువలు ('వాలెరీ జి. ఫిలిప్', '[ఇమెయిల్ రక్షించబడింది]', 10001, 1), ('సీన్ ఆర్. కథలు', '[ఇమెయిల్ రక్షించబడింది]', 10005, 2), ('బాబీ ఎస్. న్యూస్సోమ్', '[ఇమెయిల్ రక్షించబడింది]', 100010, 5);
మేము INNER చేరడం మరియు చివరగా ఎడమ జాయిన్తో ప్రారంభిస్తాము.
ఇన్నర్ జాయిన్ ఉపయోగించి సెల్ఫ్ జాయిన్
దిగువ ప్రశ్న పైన సృష్టించబడిన పట్టికలో INNER చేరడాన్ని నిర్వహిస్తుంది.
ఎంచుకోండి al1.* నుండి వినియోగదారులు al1 లోపలి చేరండి వినియోగదారులు al2 పై al1. సభ్యత్వం=al2. సభ్యత్వం ద్వారా ఆర్డర్ id DESC ;అవుట్పుట్ క్రింద చూపబడింది:
ఎడమ జాయిన్ ఉపయోగించి స్వీయ చేరండి
దిగువ ఉదాహరణ ప్రశ్న, ఎడమ జాయింట్తో సెల్ఫ్ జాయిన్ను మనం ఎలా ఉపయోగించవచ్చో వివరిస్తుంది.
ఎంచుకోండి ( కాన్కాట్ (al1. మొదటి_పేరు, '->',al2.email)) AS వివరాలు,al1.payment_id నుండి వినియోగదారులు al1 ఎడమ చేరండి వినియోగదారులు al2 పై al1.id=al2.id;అవుట్పుట్ ఫలితం క్రింద ఉంది:
ముగింపు
పట్టికలో చేరడానికి మీరు MySQL సెల్ఫ్ జాయిన్ను ఎలా ఉపయోగించవచ్చో ఈ గైడ్ మీకు తెలియజేసింది.
చదివినందుకు ధన్యవాదములు.