🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.bazy-danych
Article #195599

Re: Wiersze, których nie ma...

#195599
From: ydziO
Date: Fri, 08 Jun 2018 15:52
41 lines
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-mail
References: <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