..


Sponsoroidut linkit

Vastakohta INNER JOIN tai hankkia tiedot eivät täsmää

Artikkelin kirjoittanut Max Bossi

Kuka tietää, mitä tietoa SQL JOIN. Meidän oppaita ja muita artikkeleita selitimme kuinka liittyä ja miten voit luoda suhteita eri taulukoita tietokantaan.

Yleisin vaatimus täytetään väline liittyä löytää välisissä otteluissa kaksi taulukkoa, jolloin pelastaa INNER JOIN lauseke, joka tarkasti paikantaa ja palauttaa kentät, jotka täyttävät kirjeenvaihto haetaan kahden tai useamman taulukoita mukana vuonna JOIN.

Paljon vähemmän intuitiivinen päinvastoin on tarve tunnistaa kentät, joilla ei ole ottelun sisällä JOIN.

Otetaanpa esimerkki.
Oletetaan, että haluat hoitaa tällaista tietokantaa verkkokaupan koostuu vain kaksi taulukkoa:

  • asiakkaat (sisältää master käsittelee asiakkaan)
  • tilaukset (sisältää tekemien tilausten asiakkaat)
Oletetaan haluat purkaa kaksi eri luettelot asiakkaista: 1) luettelo asiakkaista, jotka ovat jo tilauksessa, 2) luettelo asiakkaista, jotka eivät ole vielä ostanut mitään.

Voit täyttää ensimmäisen vaatimuksen, tietenkin, on hyvin yksinkertainen:

 



 SELECT CUSTOMER.FIRST, CUSTOMER.LAST







 FROM Asiakkaat







 INNER JOIN Tilaukset







 ON = clienti.id ordini.id_cliente







 ORDER BY ASC CUSTOMER.LAST

 
ja toistaiseksi ei ole ongelma.

Mutta miten voimme tehdä kääntämään tuloksen? No ... Ensinnäkin, älä käytä INNER JOIN, mutta LEFT JOIN löytää ottelu kokonaisuudessaan, mutta ei osittainen, jossa kuitenkin tuloksia vasemmasta taulukosta palautetaan joka tapauksessa.
Ilman tätä me tarkastelemme (käyttäen WHERE) tiedot puuttuvat (eli ei löydy raportissa) sitten tunnistaa NULL (SQL-NULL määritellään eräänlainen "erityinen arvo", joka tunnistaa ilman arvoa ..)

Katsotaanpa koodi:

 



 SELECT CUSTOMER.FIRST, CUSTOMER.LAST







 FROM Asiakkaat







 LEFT JOIN Tilaukset







 ON = clienti.id ordini.id_cliente







 WHERE IS NULL ordini.id_cliente







 ORDER BY ASC CUSTOMER.LAST

 
Tulos on itse asiassa nimilista asiakkaillemme, jotka ovat koskaan ostanut mitään.

Samassa luokassa ...
E-Learning
MS Access (Advanced) MS Access (Advanced)
Opi kuinka luoda ja hallita tietokantoja nopeasti ja helposti. Alkaen 29 €.
MySQL (kurssi) MySQL (kurssi)
Hallinta avoimen lähdekoodin tietokanta. Alkaen 39 €.
SQL ja Database (kurssi) SQL ja Database (kurssi)
Luoda ja hallita relaatiotietokantojen. Alkaen 39 €.
Sponsoroidut linkit