కంప్యూటర్లు, ప్రోగ్రామింగ్
ఒక ఉదాహరణ, వివరణాత్మక వర్ణన, లోపం ఉపయోగం - ఎడమకు (SQL) చేరడానికి
ఏ నిజమైన రిలేషనల్ డేటాబేస్ లో, అన్ని సమాచారం ప్రత్యేక పట్టిక పంపిణీ. పట్టికలు పలు ఒకదానితో కమ్యూనికేషన్ పథకంలో నిర్ధేశించిన ఉంటాయి. అయితే, సహాయంతో SQL ప్రశ్నలను అది సర్క్యూట్ ఎంబెడ్ డేటా మధ్య ఒక లింక్ ఉంచాలి చాలా అవకాశం ఉంది. ఈ మీరు పట్టికలు ఏ సంఖ్య మధ్య సంబంధం నిర్మించడానికి, మరియు కూడా అకారణంగా వేర్వేరు సమాచారం కనెక్ట్ అనుమతిస్తుంది ఒక చేరడానికి కనెక్షన్ ప్రదర్శించటం ద్వారా జరుగుతుంది.
ఈ వ్యాసం ఎడమ బాహ్య చేరడానికి గురించి ప్రత్యేకంగా చర్చ ఉంటుంది. కనెక్షన్ యొక్క ఈ రకం యొక్క వివరణ కొనసాగే ముందు, కొన్ని డేటాబేస్ పట్టికలు లో జోడించండి.
అవసరం పట్టికలు సిద్ధమౌతోంది
ఉదాహరణకు, మా డేటాబేస్ లో, ప్రజలు మరియు వారి రియల్ ఎస్టేట్ గురించి సమాచారం ఉంది. పీపుల్స్ (ప్రజలు), రియాల్టీ (రియల్ ఎస్టేట్), Realty_peoples (పట్టిక సంబంధాలు, ప్రజలు ఏమి నుండి ఆస్తి చెందిన): మూడు పట్టికలు ఆధారంగా సారాంశం. ప్రజల పట్టికలు నిల్వ కింది డేటా ఊహించుకోండి:
పీపుల్స్ | ||||
ఐడి | L_name | F_name | Middle_name | పుట్టినరోజు |
1 | Ivanova | Daria | B. | 07/16/2000 |
2 | పుగిన్ | వ్లాడిస్లావ్ | నికోలాయెవిచ్ | 29.01.1986 |
3 | Evgenin | అలెగ్జాండర్ | Federovich | 04/30/1964 |
4 | Annina | ప్రేమ | పి | 31.12.1989 |
5 | Gerasimovsky | ఆశిస్తున్నాము | పి | 14.03.1992 |
6 | Gerasimovsky | ఒలేగ్ | Albertovich | 01/29/1985 |
7 | Sukhanovskaya | జ్యూరీ | A. | 09/25/1976 |
8 | Sukhanovskaya | జూలియా | వై | 01.10.2001 |
రియల్ ఎస్టేట్:
రియాల్టీ | |
ఐడి | చిరునామా |
1 | ఆర్ఖంగెల్స్క్, ఉల్. వోరోనిన్, d. 7, kv.6 |
2 | ఆర్ఖంగెల్స్క్, ఉల్. Severodvinskaya, మరణం. 84, q. 9 BR. 5 |
3 | ఆర్ఖేంగెల్స్క్ ప్రాంతం, సెవెరొడ్విన్స్క్, స్టంప్. లెనిన్, d. 134, q. 85 |
4 | ఆర్ఖేంగెల్స్క్ ప్రాంతం, Novodvinsk, ఉల్. Proletarshaya, మరణం. 16, q. 137 |
5 | ఆర్ఖంగెల్స్క్, pl. Terekhina, మరణం. 89, q. 13 |
రిలేషన్స్ ప్రజలు - ఆస్తి:
Realty_peoples | ||
id_peoples | id_realty | రకం |
7 | 3 | మొత్తం ఉమ్మడి యాజమాన్యం |
8 | 3 | మొత్తం ఉమ్మడి యాజమాన్యం |
3 | 5 | ఆస్తి |
7 | 1 | ఆస్తి |
5 | 4 | సాధారణ భాగాలు |
6 | 4 | సాధారణ భాగాలు |
ఎడమ చేరడానికి (SQL) - వివరణ
ఎడమ సమ్మేళనం క్రింది సింటెక్స్ ఉంది:
Table_A LEFT JOIN table_B [{ఆధారం ON} | {Tolbtsov తో spisok_ ఉపయోగించడము}] |
ఉద్యమాలపై చిత్రరూపంలో వంటి:
మరియు ఈ వ్యక్తీకరణ "టేబుల్ A మరియు టేబుల్ B లైన్ ఆధారం యొక్క మ్యాచింగ్ వరుసలు మాత్రమే ప్రదర్శించడానికి మినహాయింపు లేకుండా, అన్ని ఎంచుకోండి, గా అనువదించబడింది. "విలువలు - పట్టిక జతల ఎ తీగ పట్టిక కనుగొనబడింది ఉంటే, అప్పుడు ఫలిత నిలువు శూన్య పూరించడానికి.
చాలా తరచుగా, ఎడమ కనెక్షన్ సూచించబడుతుంది ఉన్నప్పుడు, ఉపయోగించి మాత్రమే కనెక్షన్ చేయడానికి ప్రణాలిక కాలమ్ పేర్లు, అదే ఉన్నప్పుడు ఉపయోగిస్తారు.
ఎడమ చేరడానికి - ఉదాహరణలు వాడకం
ఎడమ కనెక్షన్ తో మేము జాబితా ప్రజలందరినీ ఉంటే అక్కడ పీపుల్స్ ఆస్తి, చూడగలరు. ఎడమ లో దీన్ని SQL ప్రశ్న ఉదాహరణకు చేరడానికి:
బాలినేని ప్రజలు. * Realty_peoples.id_realty, Realty_peoples.type నుండి ప్రజా LEFT JOIN Realty_peoples ON Peoples.id = Realty_peoples.id_peoples; |
క్రింది ఫలితాలతో:
Query1 | ||||||
ఐడి | L_name | F_name | Middle_name | పుట్టినరోజు | id_realty | రకం |
1 | Ivanova | Daria | B. | 07/16/2000 | ||
2 | పుగిన్ | వ్లాడిస్లావ్ | నికోలాయెవిచ్ | 29.01.1986 | ||
3 | Evgenin | అలెగ్జాండర్ | Federovich | 04/30/1964 | 5 | ఆస్తి |
4 | Annina | ప్రేమ | పి | 31.12.1989 | ||
5 | Gerasimovsky | ఆశిస్తున్నాము | పి | 14.03.1992 | 4 | సాధారణ భాగాలు |
6 | Gerasimovsky | ఒలేగ్ | Albertovich | 01/29/1985 | 4 | సాధారణ భాగాలు |
7 | Sukhanovskaya | జ్యూరీ | A. | 09/25/1976 | 1 | ఆస్తి |
7 | Sukhanovskaya | జ్యూరీ | A. | 09/25/1976 | 3 | మొత్తం ఉమ్మడి యాజమాన్యం |
8 | Sukhanovskaya | జూలియా | వై | 01.10.2001 | 3 | మొత్తం ఉమ్మడి యాజమాన్యం |
మేము చూడండి గా, Ivanova దర్యా పుగిన్ వ్లాడిస్లావ్ మరియు Anninoy Lyubovi లేవు రియల్ ఎస్టేట్ హక్కులు నమోదు.
మరియు మనం ఒక అంతర్గత చేరడానికి ఇన్నర్ చేరడానికి ఉపయోగించి, పొందగలిగారని? మీరు తెలిసి, అది కాని సరిపోలే వరుసలు మినహాయిస్తుంది, కాబట్టి మా చివరి నమూనా యొక్క మూడు కేవలం పడిపోయింది అవుతుంది:
Query1 | ||||||
ఐడి | L_name | F_name | Middle_name | పుట్టినరోజు | id_realty | రకం |
3 | Evgenin | అలెగ్జాండర్ | Federovich | 04/30/1964 | 5 | ఆస్తి |
5 | Gerasimovsky | ఆశిస్తున్నాము | పి | 14.03.1992 | 4 | సాధారణ భాగాలు |
6 | Gerasimovsky | ఒలేగ్ | Albertovich | 01/29/1985 | 4 | సాధారణ భాగాలు |
7 | Sukhanovskaya | జ్యూరీ | A. | 09/25/1976 | 1 | ఆస్తి |
7 | Sukhanovskaya | జ్యూరీ | A. | 09/25/1976 | 3 | మొత్తం ఉమ్మడి యాజమాన్యం |
8 | Sukhanovskaya | జూలియా | వై | 01.10.2001 | 3 | మొత్తం ఉమ్మడి యాజమాన్యం |
ఇది రెండవ వెర్షన్ కూడా మా సమస్య యొక్క పరిస్థితులు అనుగుణంగా అగుపిస్తుంది. అయితే, మేము మరొక అటాచ్ ప్రారంభం ఉంటే, మరియు మరొక పట్టిక, ఫలితంగా నుండి మూడు ప్రజలు ఇప్పటికే శక్తి పోయింది. ఇన్నర్ కన్నా అందువలన, ఆచరణలో, బహుళ పట్టికలు కలపడం ఉన్నప్పుడు ఎక్కువగా ఉపయోగిస్తారు ఎడమ మరియు కుడి కనెక్షన్ చేరండి.
SQL ఉదాహరణలు చేరడానికి ఎడమ చూడండి కొనసాగుతుంది. మా ఇళ్ళు చిరునామాలతో ఒక పట్టిక అటాచ్:
బాలినేని ప్రజలు. * Realty_peoples.id_realty, Realty_peoples.type, Realty.address ప్రజల నుండి LEFT JOIN Realty_peoples ON Peoples.id = Realty_peoples.id_peoples LEFT Realty.id = Realty_peoples.id_realty ON రియాల్టీ చేరండి |
ఇప్పుడు మేము చట్టం యొక్క ఒక రకం, కానీ కూడా రియల్ ఎస్టేట్ చిరునామా మాత్రమే పొందుతారు:
Query1 | |||||||
ఐడి | L_name | F_name | Middle_name | పుట్టినరోజు | id_realty | రకం | చిరునామా |
1 | Ivanova | Daria | B. | 07/16/2000 | |||
2 | పుగిన్ | వ్లాడిస్లావ్ | నికోలాయెవిచ్ | 29.01.1986 | |||
3 | Evgenin | అలెగ్జాండర్ | Federovich | 04/30/1964 | 5 | ఆస్తి | ఆర్ఖంగెల్స్క్, pl. Terekhina, మరణం. 89, q. 13 |
4 | Annina | ప్రేమ | పి | 31.12.1989 | |||
5 | Gerasimovsky | ఆశిస్తున్నాము | పి | 14.03.1992 | 4 | సాధారణ భాగాలు | ఆర్ఖేంగెల్స్క్ ప్రాంతం, Novodvinsk, ఉల్. Proletarshaya, మరణం. 16, q. 137 |
6 | Gerasimovsky | ఒలేగ్ | Albertovich | 01/29/1985 | 4 | సాధారణ భాగాలు | ఆర్ఖేంగెల్స్క్ ప్రాంతం, Novodvinsk, ఉల్. Proletarshaya, మరణం. 16, q. 137 |
7 | Sukhanovskaya | జ్యూరీ | A. | 09/25/1976 | 3 | మొత్తం ఉమ్మడి యాజమాన్యం | ఆర్ఖేంగెల్స్క్ ప్రాంతం, సెవెరొడ్విన్స్క్, స్టంప్. లెనిన్, d. 134, q. 85 |
7 | Sukhanovskaya | జ్యూరీ | A. | 09/25/1976 | 1 | ఆస్తి | ఆర్ఖంగెల్స్క్, ఉల్. వోరోనిన్, d. 7, kv.6 |
8 | Sukhanovskaya | జూలియా | వై | 01.10.2001 | 3 | మొత్తం ఉమ్మడి యాజమాన్యం |
ఆర్ఖేంగెల్స్క్ ప్రాంతం, సెవెరొడ్విన్స్క్, స్టంప్. లెనిన్, d. 134, q. 85 |
ఎడమ చేరడానికి - లోపం యొక్క విలక్షణ ఉపయోగం: చెల్లని విధానం పట్టిక
ఎడమ బాహ్య తయారు ప్రాథమిక తప్పులను పట్టికలు, రెండు చేరడానికి:
- సరిగ్గా డేటా ఓడిపోయాడు ఇది కోసం పట్టికలు క్రమాన్ని ఎన్నుకున్నారు.
- ఒక ప్రశ్నను ఉపయోగించి ఎక్కడ లోపాలు ఉన్నప్పుడు పట్టికలు చేరండి.
మొదటి తప్పు పరిగణించండి. ఏ సమస్య నిర్ణయానికి ముందు స్పష్టంగా మేము ముగింపు లో పొందడానికి కావలసిన ఏమి అర్ధం చేసుకోవాలి. పైన ఈ ఉదాహరణలో, మేము వ్యక్తుల ప్రతి సింగిల్ను పట్టింది, కానీ పూర్తిగా సంఖ్య 2, దీని యజమాని దొరకలేదు కింద వస్తువు గురించి సమాచారాన్ని కోల్పోయింది.
మేము కొన్ని ప్రదేశాల్లో ఒక ప్రశ్న లో పట్టికలు తరలించబడింది, మరియు ప్రారంభిద్దామనుకున్నాను «... రియాల్టీ వదిలి పీపుల్స్ చేరడానికి ... నుండి» ఏ ఒక ఆస్తి ఉంటే, మేము మీరు ప్రజలు గురించి చెప్పము, కోల్పోయారు కాదు.
కానీ, ఎడమ కనెక్షన్ భయపడుతుంది, ఫలితాలు మరియు సరిపోలే మరియు సరిపోలే పంక్తులు చేర్చారు ఇది పూర్తి బాహ్య మారడం లేదు.
అన్ని తరువాత, నమూనా యొక్క వాల్యూమ్ తరచుగా చాలా పెద్దది, మరియు అదనపు డేటా వాస్తవానికి నిరుపయోగం. లేదా (ఏదైనా ఉంటే) వారి యజమానులకు మొత్తం ఆస్తి జాబితా వారి అందుబాటులో ఆస్తి జాబితాను ప్రజలందరి: - ప్రధాన విషయం మీరు ఫలితంగా పొందడానికి ఏమి దొరుకుతుందని.
ఎడమ చేరడానికి - లోపం యొక్క విలక్షణ ఉపయోగం: ఎక్కడ పరిస్థితులు సెట్ చేసినప్పుడు అభ్యర్థన సరైనది
రెండవ లోపం కూడా డేటా నష్టం సంబంధం, మరియు ఎల్లప్పుడూ వెంటనే స్పష్టమైన ఉన్నాయి.
ప్రశ్నకు తిరిగి వెళ్ళి ద్వారా కనెక్షన్లు అన్ని ప్రజలు మరియు వారి ఇప్పటికే ఆస్తి కోసం డేటా పొందింది మేము వదిలి ఉన్నప్పుడు లెట్. క్రింది గుర్తుంచుకో ఎడమ SQL ఉదాహరణ చేరడానికి:
నుండి ప్రజా LEFT JOIN Realty_peoples ON Peoples.id = Realty_peoples.id_peoples; |
మేము అభ్యర్థనను స్పష్టం కాదు కోరుకున్న అవుట్పుట్ డేటా, లేదు అనుకుందాం దేశంలో చట్ట రకం - "ఆస్తి". మేము కేవలం కలపవచ్చు ఉంటే, ఎడమ ఉపయోగించి SQL, క్రింది పరిస్థితి ఉదాహరణకు చేరడానికి:
...
ఎక్కడ రకం <> "ఆస్తి" |
మేము ఈ క్రింది శూన్య విలువ శూన్యం పోలిస్తే లేదు ఎందుకంటే, ఎటువంటి ఆస్తి కలిగిన ప్రజలపై డేటా కోల్పోతారు:
Query1 | ||||||
ఐడి | L_name | F_name | Middle_name | పుట్టినరోజు | id_realty | రకం |
5 | Gerasimovsky | ఆశిస్తున్నాము | పి | 14.03.1992 | 4 | సాధారణ భాగాలు |
6 | Gerasimovsky | ఒలేగ్ | Albertovich | 01/29/1985 | 4 | సాధారణ భాగాలు |
7 | Sukhanovskaya | జ్యూరీ | A. | 09/25/1976 | 3 | మొత్తం ఉమ్మడి యాజమాన్యం |
8 | Sukhanovskaya | జూలియా | వై | 01.10.2001 | 3 | మొత్తం ఉమ్మడి యాజమాన్యం |
ఈ కారణంగా జరగకుండా లోపాలు నిరోధించడానికి, అది వెంటనే కనెక్షన్ మీద ఎంపిక పరిస్థితి సెట్ ఉత్తమ ఉంది. మేము SQL ఉదాహరణకు చేరడానికి ఎడమ క్రింది పరిగణలోకి సూచిస్తున్నాయి.
బాలినేని ప్రజలు. * Realty_peoples.id_realty, Realty_peoples.type ప్రజల నుండి LEFT JOIN Realty_peoples ON (Peoples.id = Realty_peoples.id_peoples మరియు రకం <> "ఆస్తి") |
ఈ క్రింది విధంగా ఫలితం ఉంటుంది:
Query1 | ||||||
ఐడి | L_name | F_name | Middle_name | పుట్టినరోజు | id_realty | రకం |
1 | Ivanova | Daria | B. | 07/16/2000 | ||
2 | పుగిన్ | వ్లాడిస్లావ్ | నికోలాయెవిచ్ | 29.01.1986 | ||
3 | Evgenin | అలెగ్జాండర్ | Federovich | 04/30/1964 | ||
4 | Annina | ప్రేమ | పి | 31.12.1989 | ||
5 | Gerasimovsky | ఆశిస్తున్నాము | పి | 14.03.1992 | 4 | సాధారణ భాగాలు |
6 | Gerasimovsky | ఒలేగ్ | Albertovich | 01/29/1985 | 4 | సాధారణ భాగాలు |
7 | Sukhanovskaya | జ్యూరీ | A. | 09/25/1976 | 3 | మొత్తం ఉమ్మడి యాజమాన్యం |
8 | Sukhanovskaya | జూలియా | వై | 01.10.2001 | 3 | మొత్తం ఉమ్మడి యాజమాన్యం |
అందువలన, ఎడమ సాధారణ అనుసరించడం ద్వారా SQL ఉదాహరణ చేరడానికి, మేము అన్ని వ్యక్తుల జాబితా, మరింత కదిలే పొందింది, ఈక్విటీ / ఉమ్మడి యాజమాన్యం ఈ లక్షణాలు ఒకటి.
ఒక ముగింపు వలె నేను మళ్లీ డేటాబేస్ నుండి ఏ సమాచారం యొక్క ఒక నమూనా బాధ్యతాయుతంగా తీసుకోవాలి అని నొక్కి చెప్పాలనుకుంటున్నాను. ఎడమ మాకు ముందు ప్రారంభించింది అనేక స్వల్ప sql సాధారణ ఉదాహరణకు చేరడానికి, ఇది ఒక వివరణ - మీరు కూడా ప్రాథమిక ప్రశ్న రాయడానికి ప్రారంభించడానికి ముందు, మీరు జాగ్రత్తగా మేము చివరికి పొందడానికి ఏమి అర్థం ఉండాలి. గుడ్ లక్!
Similar articles
Trending Now