Kuidas leida kadunud Records Kasutades SQL

SQL tehnika lahendada mõistatus puudu arvestust . sinine puzzle tausta, ühes tükis vastamata pildi Stasys Eidiejus alates Fotolia.com

puudumine päringu andmed ainult näitab praegu ei ole.Puuduvat rekord on aga andmeid, et võiks või peaks olema olemas, aga ei ole.Näiteks klientide andmeid ja korraldusi elada tabelid Kliendid ja tellimusi.Klient nimekirja taotletakse, ja sa, programmeerija, eeldame, iga klient on selleks.Pakkudes klientidele tellimuste peaks andma õige klientide nimekirja, kuid see?Videod kliendid Kliendid võivad anda rohkem, mis viitab sellele, mõned kliendid on puudu tellimusi.Sa pead välja selgitama, millised kliendid on puudu tellimusi ja siis aru, kui see asjaolu on, mille konstruktsioon või viga.

juhised

  1. Näita erinevad kliendid klientide laua.Näiteks:

    VALI DISTINCT C.CUSTOMERID
    KLIENTIDE C

  2. Näita erinevat klientidele tellimuste tabelis.Näiteks:

    VALI DISTINCT O.CUSTOMERID
    tellimuste O

  3. Kindlaks klientidele puudu tellimusi ühendades samme 1 ja 2 arvesse lähimaks subquery.

    VALI DISTINCT C.CUSTOMERID
    KLIENTIDE C
    KUS ole olemas
    (VALI *

    tellimuste O

    KUS O.CUSTOMERID = C.CUSTOMERID)

    OLEMAS on Oracle funktsioon, mis testib olemasoluks tagasi subquery arvestust.Eessõnaks koos "EI" testid puudumisel arvestust.Siin subquery sobib klientidele nii tabelid.Tikud tagasta tulemusi, mis välistaks need sobitada kliendi Id on peamisest tulemuse hulka.Ainult KliendiId on ilma O.CUSTOMERID mängu oleks kuvatud.

  4. Teise kindlaks puudu kirjed komposiit silmas cusotmer ja tellimuse tabelid.

    VALI DISTINCT C.CUSTOMERID
    KLIENTIDE C, korraldused O
    KUS C.CUSTOMERID = O.CUSTOMERID (+)

    ja O.CUSTOMERID on null

    Kui te kahtlustate, ordu tabel saab puudu arvestust, siis proovige seda päringutkuvada C.CUSTOMERID ja O.CUSTOMERID kõrvuti.Nuppudega (+) tugineb vasakul välimine liituda, mis ütleb Oracle näidata kõiki vastavaid andmeid KUS avalduse koos kõigi C.CUSTOMERID on alates vasakul tabelis, mis ei ole sobivad O.CUSTOMERID on paremal pool tabelis.

    Kui on C.CUSTOMERID on ilma sobiva O.CUSTOMERID on, siis näitab koos null väärtused olematu O.CUSTOMERID on.Read, millel NULLS esindavad puuduvad selleks arvestust.

    Kui loend on liiga pikk visuaalne kontroll, teine ​​KUS avalduses tagab tulemused on piiratud C.CUSTOMERID on puuduva tellimusi.

Tips & amp;Hoiatused

  • Päringule peetakse lähimaks sest subquery viited C.CUSTOMER, mis eksisteerib tabelis ei viidatud subquery.Oracle töötleb subquery üks rekord korraga, üritades sobitada iga O.CUSTOMER kuni C.CUSTOMER järjest, tagastades null või mitte null rekord sõltuvalt mängu tulemus.
  • korreleeru subquery ei viide valdkonnas väljaspool tema viiteid tabelitele.See sunnib Oracle joosta subquery ja sobitada kogu tulemus seatud peamised päringu, otsib vastust WHERE klauslit tingimused.
  • Suutmatus jõuda puudu arvestust võib mõjutada teie lõpparuande ei esita täielikku ulatust andmeid.

Resources

  • SQL Analoogia puuduvad andmed
897
0
3
Programmeerimine Keeled