Article View: pl.comp.bazy-danych
Article #195599Re: Wiersze, których nie ma...
From: ydziO
Date: Fri, 08 Jun 2018 15:52
Date: Fri, 08 Jun 2018 15:52
41 lines
2392 bytes
2392 bytes
On 2018-06-08 14:32:07 +0000, Stokrotka said: >>> >>> Mam 3 tabele: >>> OSOBA (IDOSOBY, IMIE, NAZWISKO, PESEL) >>> MEDAL (IDMEDALU, NAZWA) >>> OSOBA_MEDAL (ID, IDOSOBY, IDMEDALU, DATA) >>> >>> W tabeli MEDALE mamy wszystkie dostępne medale, powiedzmy 10. >>> W tabeli OSOBA_MEDAL mamy wpisy tylko wtedy, gdy osoba otrzymała jakiś >>> medal wraz z datą otrzymania. >>> >>> I teraz chodzi o to, żeby dla zadanej osoby (po PESELu) wyświetlić listę >>> wszystkich medali (tych 10 możliwych) z datą otrzymania medalu lub nullem, >>> gdy danego medalu nie ma (czyli nie ma wpisu w tabeli OSOBA_MEDAL). >>> >>> Jak to najzgrabniej zrobić? >>> >>> >>> serwer MariaDB >> >> O ile cię dobrze zrozumiałem to zrobił bym to na zasadzie: >> SELECT * FROM MEDAL LEFT JOIN OSOBA_MEDAL >> ON MEDAL.IDMEDALU = OSOBA_MEDAL.IDMEDALU >> AND OSOBA_MEDAL.IDOSOBY IN (SELECT IDOSOBY FROM OSOBA WHERE PESEL = "x") > > > A jak ci wyjdą te co mają być nulem zamiast daty , gdy nie ma medalu? > Może jakieś grupowanie po medalu,i wstawianą wartością first(), > oczywiście z warunkiem na pesel, sortowane po ilości medali (wyjdzie 1 > lub 0, z medalami będa na wstępie. > > Ewentualnie union: najpierw te z medalami, a potem bez medalu, wtedy > bez grupowania. Może coś takiego? Select o.imie,o.nazwisko,om.data,m.nazwa from osoba o left join osoba_medal om on o.idosoby=om.idosoby join medal m om.idmedalu=m.idmedalu where o.pesel=’XXXXXXXXXXX’
Technical Details
Message-ID:
<5b1aa648$0$617$65785112@news.neostrada.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!goblin1!goblin.stu.neva.ru!newsfeed.neostrada.pl!unt-exc-01.news.neostrada.pl!unt-spo-b-01.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mailReferences:
<vlw8xdkyene8$.dlg@tyczka.com> <5b1a6f17$0$608$65785112@news.neostrada.pl> <5b1a936e$0$592$65785112@news.neostrada.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!goblin1!goblin.stu.neva.ru!newsfeed.neostrada.pl!unt-exc-01.news.neostrada.pl!unt-spo-b-01.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail From: ydziO <ydzio(a)hot.com> Newsgroups: pl.comp.bazy-danych Date: Fri, 8 Jun 2018 17:52:41 +0200 Message-ID: <5b1aa648$0$617$65785112@news.neostrada.pl> References: <vlw8xdkyene8$.dlg@tyczka.com> <5b1a6f17$0$608$65785112@news.neostrada.pl> <5b1a936e$0$592$65785112@news.neostrada.pl> MIME-Version: 1.0 Subject: Re: Wiersze, których nie ma... User-Agent: Unison/2.2 Lines: 42 Organization: Telekomunikacja Polska NNTP-Posting-Host: 93.174.26.32 X-Trace: 1528473161 unt-rea-a-02.news.neostrada.pl 617 93.174.26.32:63992 X-Complaints-To: abuse@news.neostrada.pl Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit