ప్రధాన కంటెంట్‌కు వెళ్లండి
మాడ్యూల్ 5 · 4లో పాఠం 3కోర్సులో 19/57~10 min
మాడ్యూల్ పాఠాలు (3/4)

ఔటర్ జాయిన్: "ఖాళీలు" కనుగొనడం

మాడ్యూల్ 3లో మీరు LEFT JOIN చూసారు: అన్ని అడ్డు వరుసలను ఎడమవైపు ఉంచండి, అవి కూడా కుడివైపు మ్యాచ్ లేకుండా (ఇది NULL అవుతుంది). ఈ అధ్యాయంలో మనం RIGHT JOIN మరియు FULL OUTER JOINతో టూల్‌కిట్‌ను విస్తరించండి మరియు మేము నేర్చుకుంటాము డేటాలో **"రంధ్రాలు"**ని కనుగొనడానికి వాటిని ఎలా ఉపయోగించాలి: ఒక పట్టికలోని వరుసలు మరొకదానిలో ప్రతిరూపం లేదు.

మూడు రకాల OUTER JOIN

SQL
A LEFT  JOIN B  ON …  -- tutte le righe di A, con o senza match in B
A RIGHT JOIN B  ON …  -- tutte le righe di B, con o senza match in A
A FULL  JOIN B  ON …  -- tutte le righe di A *e* di B; NULL dove non c'è match

A RIGHT JOIN Bని ఎల్లప్పుడూ B LEFT JOIN Aగా తిరిగి వ్రాయవచ్చు ON: ఇది చదవడానికి సంబంధించిన విషయం. అనేక శైలులు (ఈ కోర్సుతో సహా) స్థిరత్వం కోసం ఎల్లప్పుడూ LEFT JOINని ఉపయోగించడానికి ఇష్టపడతారు.

"యాంటీ-జాయిన్" నమూనా: తప్పిపోయిన వాటిని కనుగొనడం

LEFT JOIN యొక్క అత్యంత సాధారణ ఉపయోగం "డేటాతో సుసంపన్నం" కాదు కుడివైపు", కానీ ఎడమవైపున సరిపోలిక లేని అడ్డు వరుసలను కనుగొనండి కుడి. దీనిని యాంటీ-జాయిన్ అంటారు:

SQL
-- Prodotti senza nessuna recensione:
SELECT p.id, p.name
FROM   products p
LEFT JOIN reviews r ON r.product_id = p.id
WHERE  r.id IS NULL
ORDER BY p.id;

నమూనా తర్కం:

  1. LEFT JOIN ప్రతి ఉత్పత్తి యొక్క సమీక్షలు ఏవైనా ఉంటే జోడించబడతాయి;
  2. సమీక్షలు లేని ఉత్పత్తుల కోసం, అన్ని r నిలువు వరుసలు NULL;
  3. WHERE r.id IS NULL ఆ ఉత్పత్తులను మాత్రమే ఉంచుతుంది.

కీ చెక్: కుడివైపు పట్టిక యొక్క శూన్యం కాదు నిలువు వరుసలో id IS NULL అంటే "సరిపోలిక లేదు". మీరు తరచుగా కుడి చేతి యొక్క PKలో ఫిల్టర్ చేస్తారు ఈ కారణంగా ఖచ్చితంగా పట్టిక.

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

FULL OUTER JOIN మ్యాచ్ లేకుండా రెండు వైపులా ఉంచుతుంది. ఇది చాలా అరుదుగా ఉపయోగించబడుతుంది, సాధారణంగా డేటా సమగ్రత తనిఖీల కోసం:

SQL
SELECT c.id AS customer_id, o.id AS order_id
FROM   customers c
FULL OUTER JOIN orders o ON o.customer_id = c.id
WHERE  c.id IS NULL OR o.id IS NULL;

c.id IS NULLతో ఉన్న అడ్డు వరుసలు అనాథ ఆర్డర్‌లు (a customer_id అది customersలో లేదు). o.id IS NULL ఉన్నవారు కస్టమర్‌లు ఆదేశాలు లేకుండా. మా డేటాసెట్‌లో విదేశీ కీలు అనాథలేనని హామీ ఇస్తున్నాయి ఆదేశాలు ఉన్నాయి; ఆర్డర్లు లేని కస్టమర్లు మాత్రమే మిగిలి ఉన్నారు.

మీరే ప్రయత్నించండి

వ్యాయామం#sql.m5.l3.e1
ప్రయత్నాలు: 0లోడ్ అవుతోంది...

త్రోవ టుట్టి ఐ ప్రోడొట్టి చే నాన్ హన్నో మై రైస్వుతో ఉనా రీసెన్సియోన్. మోస్ట్రా సోలో లా కొలోనా పేరు. పేరుకు ఆర్డినా.

ఎడిటర్ లోడ్ అవుతోంది…
సూచనను చూపించు

పాటర్న్ యాంటీ-జాయిన్: LEFT JOIN రివ్యూలు su product_id, poi ఎక్కడ r.id శూన్యం.

3 ప్రయత్నాల తర్వాత పరిష్కారం లభిస్తుంది

వ్యాయామం సమీక్షించండి

వ్యాయామం#sql.m5.l3.e2
ప్రయత్నాలు: 0లోడ్ అవుతోంది...

ట్రోవా ఐ క్లయింటీ చే నాన్ హన్నో మై ఆర్డినాటో నుల్లా. అత్యంత ఇమెయిల్. ప్రతి ఇమెయిల్‌కి ఆర్డినా.

ఎడిటర్ లోడ్ అవుతోంది…
సూచనను చూపించు

Stesso నమూనా dell'esercizio పూర్వగామి, ma fra వినియోగదారులు మరియు ఆర్డర్లు.

3 ప్రయత్నాల తర్వాత పరిష్కారం లభిస్తుంది