Article View: pl.comp.bazy-danych
Article #195031Re: Zapytanie eliminujące bez podzapytań (master-detail-detail)
From: Roman Tyczka
Date: Wed, 13 Jul 2016 20:43
Date: Wed, 13 Jul 2016 20:43
70 lines
2894 bytes
2894 bytes
To nie zadziała, warunkiem było, żeby odrzucało rodziców, których choćby jedno dziecko ma lalkę. Zauważ, że MARIA ma dwie córki, JULIE i ZOSIE, i mimo, że tylko jedna z nich ma lalkę to MARIA już powinna być pominięta w wyniku, a nie będzie, bo załapie się przez drugą córkę. I to jest właśnie problem. Inny pomysł? -- pozdrawiam Roman Tyczka On Wed, 13 Jul 2016 11:12:36 -0700 (PDT), Adam M wrote: > mozna to zrobic na dwa sposoby: > eliminacja w where lub w join > > -> w where > SELECT R.ID, R.IMIE FROM RODZICE R > JOIN DZIECI D ON D.IDRODZICA = R.ID > JOIN ZABAWKI Z ON Z.IDDZIECKA = D.ID > WHERE z.id not in (1) > >> Mam 3 tabelki w relacji master-detail-detail: >> RODZICE >> ID| IMIE >> 1| MARIA >> 2| JAN >> 3| KATARZYNA >> 4| PIOTR >> >> DZIECI >> ID| IMIE| ID RODZICA >> 1| JULKA | 1 >> 2| ZOSIA | 1 >> 3| HENIU | 2 >> 4| ZUZIA | 3 >> 5| VIOLA | 4 >> >> ZABAWKI >> ID| NAZWA | ID DZIECKA >> 1| LALKA | 1 >> 2| AUTKO | 2 >> 3| KLOCKI| 3 >> 4| PIŁKA | 4 >> 5| GRA | 5 >> 6| PISTOL| 3 >> 7| LALKA | 4 >> >> Każde dziecko może mieć kilka zabawek, każdy rodzic kilkoro dzieci. >> Jak za pomocą jednego selecta wydobyć tylko tych rodziców, których dzieci >> nie mają określonych zabawek, np. lalki? >> >> Z powyższych danych zapytanie ma zwrócić tylko JANA i PIOTRA, bo dziecko >> MARII oraz dziecko KATARZYNY mają lalkę. >> >> SELECT R.ID, R.IMIE FROM RODZICE R >> JOIN DZIECI D ON D.IDRODZICA = R.ID >> JOIN ZABAWKI Z ON Z.IDDZIECKA = D.ID >> WHERE ??? >> >> ps. umiem to zrobić z podzapytaniem w sekcji where, ale chciałbym się >> dowiedzieć czy można prościej >> >> >> -- >> pozdrawiam >> Roman Tyczka
Technical Details
Message-ID:
<1ov3gu6lpwyr7.dlg@tyczka.com>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!cyclone01.ams2.highwinds-media.com!voer-me.highwinds-media.com!peer01.am1!peering.am1!peer04.fr7!news.highwinds-media.com!newsfeed.neostrada.pl!unt-exc-02.news.neostrada.pl!unt-spo-a-01.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mailReferences:
<swisjwkg9lsr.dlg@tyczka.com> <27635872-bb14-41fa-946a-a5d918751da1@googlegroups.com>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!cyclone01.ams2.highwinds-media.com!voer-me.highwinds-media.com!peer01.am1!peering.am1!peer04.fr7!news.highwinds-media.com!newsfeed.neostrada.pl!unt-exc-02.news.neostrada.pl!unt-spo-a-01.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail From: Roman Tyczka <noemail@because.no> Subject: Re: Zapytanie eliminujące bez podzapytań (master-detail-detail) Newsgroups: pl.comp.bazy-danych User-Agent: 40tude_Dialog/2.0.15.84 MIME-Version: 1.0 Sender: romek@tyczka.no.found References: <swisjwkg9lsr.dlg@tyczka.com> <27635872-bb14-41fa-946a-a5d918751da1@googlegroups.com> Date: Wed, 13 Jul 2016 22:43:44 +0200 Message-ID: <1ov3gu6lpwyr7.dlg@tyczka.com> Lines: 70 Organization: Telekomunikacja Polska NNTP-Posting-Host: nat.wave.com.pl X-Trace: 1468442626 unt-rea-a-01.news.neostrada.pl 12540 91.224.116.2:18931 X-Complaints-To: abuse@news.neostrada.pl X-Received-Body-CRC: 2844439172 X-Received-Bytes: 2756 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit