Welcome to Our Website

SQL Vinkki: VASEN Liittyy ja MISSÄ lausekkeita,…ovatko he todella VASEMMALLE Liittyy?

X

Tietosuoja & Evästeet

Tämä sivusto käyttää evästeitä. Jatkamalla hyväksyt niiden käytön. Lue lisää, myös evästeiden hallinta.

Got It!,

Mainokset

On aikoja, jolloin voin tarkastella SQL-kyselyjä ja löytää ihmisiä, käyttämällä vasen ULOMPI Liittyy, mutta sitten käyttää MISSÄ lausekkeita, jotka puolestaan niihin liittyy osaksi SISÄISTÄ Liittyy. Äskettäin kun mainitsin tämän joku he muistuttivat minua, että minun pitäisi blogi it…so tässä minä bloggaan siitä. 🙂

ensimmäinen pois, jos et ole perehtynyt eri liittyy mennä eteenpäin ja lukea tämän muun SQL kärki kirjoitin., Nyt, Let ’s saada oppia hieman enemmän vasemmalle ulompi liittyä (I’ ll viitata siihen yksinkertaisesti kuin vasen liittyä tästä eteenpäin).

aloitetaan muutamista näytetiedoista. Seuraavia voidaan käyttää omien kyselyiden alussa, jos aiot suorittaa nämä testit itse. Kuten näette, se luo kaksi taulukkoa (taulukkomuuttujat).,

Jos haluamme palauttaa kaikki tietueet ”Taulukko1” riippumatta siitä, onko liittyvä ennätys ”Table2” ja näytä tiedot ”Table2”, kun on liitetty tietueen olimme kirjoittaa VASEMMALLA LIITTYÄ, kuten niin:

SELECT * FROM @Table1 tb1 LEFT OUTER JOIN @Table2 tb2 ON tb1.colID = tb2.columnID;

Output:

Kuitenkin, jos haluamme nyt lisätä where-lausekkeen kyselyn vain saada tietoja ”Table2”, jossa TUNNUS on vähemmän kuin 4 voisimme tehdä jotain, kuten tämä:

SELECT * FROM @Table1 tb1 LEFT OUTER JOIN @Table2 tb2 ON tb1.colID = tb2.columnID WHERE tb2.columnID < 4;

Output:

Mutta…näitkö että meillä on vain arvoja, joilla on vastaava TUNNUS sekä taulukoita?, Hmmm … tuo näyttää aika paljon sisäiseltä liitolta, vai mitä? Koska se on. Etkö usko minua? Katso toteutussuunnitelman jälkeen käynnissä vasen LIITTYÄ kanssa ja ilman MISSÄ kunnossa. Tässä on mitä näet:

Joten miten me kiertää tämän? No, kun teet VASEMMALLE LIITTYÄ aluksi tarvitset tai haluat palauttaa kaikki tietueet ”Taulukko1” riippumatta tiedot ”Table2”., Ja jos et todellakaan halua palata tietoja tiettyihin kirjaa ”Table2” sitten voit suodattaa tietueet ulos teidän LIITTYÄ predikaattia (’hakuehdot’ in osan LIITTYÄ). Esimerkiksi viimeinen kysely olisi kirjoitettu näin:

SELECT * FROM @Table1 tb1 LEFT OUTER JOIN @Table2 tb2 ON tb1.colID = tb2.columnID AND tb2.columnID < 4;

tuloksena on:

Katso, miten voimme vielä saada 5 levyjä ”Taulukko1”, mutta ei tietoja ”Table2”, jotka eivät täytä meidän kriteereitä? Se vain palauttaa mitätöiviä tietoja taulukossa, joka ei täytä kriteerejä. Eikö olekin mahtavaa?,

– voimme katsoa toteutussuunnitelman taas todistaa, että olemme itse asiassa käyttämällä VASEMMALLE LIITTYÄ:

Entä kun sen sijaan arvo joku käyttää ON NULL kunnon sijaan? Siinä tapauksessa voit käyttää sitä WHERE-lausekkeessa.

SELECT * FROM @Table1 tb1 LEFT OUTER JOIN @Table2 tb2 ON tb1.colID = tb2.columnID WHERE tb2.columnID IS NULL;

Output:

Ja, katsotaanpa toteutussuunnitelman uudestaan:

Huomaa, se suorittaa vasen liittyä ja sitten suodattaa tiedot NULL kirjaa? Niin me haluamme sen tekevän ja suoraan sanottuna, niin me todennäköisesti odotimme sen tekevän.

Mitä jos käytämme ei ole NULL sen sijaan? Se on toinen tarina., Pilaan yllätyksen ja sanon vain, että se tekee sisäisen liittymisen aivan kuten se olisi todellinen arvo. Jos et usko minua, tee kysely itse ja katso toteutussuunnitelmaa.

So, there you have it; that ’ s how a LEFT JOIN may or may not actually be a LEFT JOIN. Toivottavasti nämä tiedot auttavat sinua kirjoittamaan paremmin, tai ainakin, tietoisempia kyselyitä.

Mainokset

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *