Wat is die verskil tussen join en unie in SQL?
Wat is die verskil tussen join en unie in SQL?

Video: Wat is die verskil tussen join en unie in SQL?

Video: Wat is die verskil tussen join en unie in SQL?
Video: Dinsdag faktorisering Die verskil van twee vierkante 2024, Maart
Anonim

In 'n vakbond , kolomme word nie gekombineer om resultate te skep nie, rye word gekombineer. Albei aansluit en vakbonde kan gebruik word om data van een of meer tabelle in 'n enkele resultate te kombineer. Hulle albei gaan oor hierdie is anders maniere. Terwyl a aansluit word gebruik om kolomme van te kombineer anders tafels, die vakbond word gebruik om rye te kombineer.

Net so, wat is die verskil tussen unie en volle aansluiting?

Sluit aan word gebruik om kolomme van te kombineer anders tabelle, terwyl vakbond word gebruik om rye te kombineer. Hoop dit help. As jy dit visueel voorstel: Met 'n vol buitenste aansluit jy voeg kolomme by en verbreed jou resultaatrye (tuples) met kolomme (kenmerke) uit die rye (tuples) van die brontabelle.

Daarbenewens, wat kan gebruik word in plaas van unie in SQL? Daar is verskeie alternatiewe vir die vakbond SQL-operateur:

  • Gebruik UNION ALL.
  • Voer elke SQL afsonderlik uit en voeg die resultaatstelle binne jou program saam en sorteer!
  • Sluit aan by die tafels.
  • In weergawes, 10g en verder, verken die MODEL-klousule.
  • Gebruik 'n skalêre subnavraag.

Net so, vra mense, wat is vinniger aansluit of unie?

'n Enkele SELECT sal nie meer as een indeks per tabel gebruik nie. A UNIE sal nie meer as een indeks per SELECT in die vakbond . Gevolglik sal laasgenoemde beter gebruik maak van indekse, soos gesien deur die "Gebruik indeks" op baie plekke in sy EXPLAIN. So van wat jy sê UNIES uit hul aard is werklik vinniger as AANSLUIT.

Verwyder volle buitenste aansluiting duplikate?

Wanneer aansluit twee tabelle met " volle buitenste verbindings ", sal die resultaat hê dupliseer kolomme. As die kolompassing byvoorbeeld "datum" is, sal die resultaatdatastel kolom "datum" en "datum_1" hê. In links buitenste aansluiting of innerlike aansluit , kan ons eenvoudig "kies kolomme" gebruik om verwyder die gedupliseer kolomme.

Aanbeveel: