Article View: pl.comp.bazy-danych
Article #195125Re: [mysql] Łączenie danych z wielu tabel
From: kamil.sobczyk
Date: Tue, 18 Oct 2016 11:00
Date: Tue, 18 Oct 2016 11:00
108 lines
4155 bytes
4155 bytes
W dniu wtorek, 18 października 2016 12:42:04 UTC+2 użytkownik artiun napisał:
> W dniu 2016-10-17 o 20:02, kamil.sobczyk@gmail.com pisze:
> > Witam,
> >
> > Mam tabele:
> > ||=Zawodnik
> > ||id_zawodnik (pk)
> > ||imie_nazwisko
> >
> > ||=Klub
> > ||id_klub (pk)
> > ||grupa_wiekowa
> > ||nazwa
> >
> > ||=BIEG5
> > ||id_zawodnik (pk)
> > ||id_szkolka (pk)
> > ||rok (pk)
> > ||kwartal (pk)
> > ||punkty_b5
> >
> > ||=BIEG10
> > ||id_zawodnik (pk)
> > ||id_szkolka (pk)
> > ||rok (pk)
> > ||kwartal (pk)
> > ||punkty_b10
> >
> > ||=BIEG30
> > ||id_zawodnik (pk)
> > ||id_szkolka (pk)
> > ||rok (pk)
> > ||kwartal (pk)
> > ||punkty_b30
> >
> >
> W jaki sposób zawodnik łączy się z klubem.
> Rok, kwartał to chyba określenie kiedy odbywają się zawody.
> Więc jak przypisać zawodnikowi grupę wiekową, jak przypisać do szkółki
> (id_szkolka, id_klub). Rozpisz to jeszcze raz.
> Co wg Ciebie znaczy pk? Ile pk może być w jednej tabeli?
> Sam CHAOS.
>
> --
> Artur
Rozwiązanie tego chaosu ;)
SELECT
Z.ID_ZAWODNIK
,S.ID_SZKOLKA
,S.GUPA_WIEKOWA
,B.ROK
,B.KWARTAL
,SUM(B.PB5) AS PUNKTY_B5
,SUM(B.PB10) AS PUNKTY_B10
,SUM(B.PB30) AS PUNKTY_B30
,SUM(B.PB) AS SUMA
FROM
ZAWODNIK AS Z
INNER JOIN (
SELECT
ID_ZAWODNIK
,ID_SZKOLKA
,ROK
,KWARTAL
,PUNKTY_B5 AS PB5
,0 AS PB10
,0 AS PB30
,PUNKTY_B5 AS PB
FROM
BIEG5
UNION ALL
SELECT
ID_ZAWODNIK
,ID_SZKOLKA
,ROK
,KWARTAL
,0 AS PB5
,PUNKTY_B10 AS PB10
,0 AS PB30
,PUNKTY_B10 AS PB
FROM
BIEG10
UNION ALL
SELECT
ID_ZAWODNIK
,ID_SZKOLKA
,ROK
,KWARTAL
,0 AS PB5
,0 AS PB10
,PUNKTY_B30 AS PB30
,PUNKTY_B30 AS PB
FROM
BIEG30
) AS B ON B.ID_ZAWODNIK = Z.ID_ZAWODNIK
INNER JOIN KLUB AS S ON S.ID_KLUB = B.ID_SZKOLKA
WHERE
B.ROK=2012
AND B.KWARTAL=3
AND S.GRUPA_WIEKOWA = 11
GROUP BY
Z.ID_ZAWODNIK
,S.ID_SZKOLKA
,S.GUPA_WIEKOWA
,B.ROK
,B.KWARTAL
Technical Details
Message-ID:
<90e65a90-a2de-4a6f-bbe1-be122db4ebce@googlegroups.com>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!goblin1!goblin.stu.neva.ru!feeders.as203319.net!feeder02.as203319.net!2.eu.feeder.erje.net!feeder.erje.net!2.us.feeder.erje.net!newspeer1.nac.net!border2.nntp.dca1.giganews.com!nntp.giganews.com!f6no2078992qtd.0!news-out.google.com!203ni1733itk.0!nntp.google.com!66no728484itl.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mailReferences:
<f97272db-262f-4f16-912e-f32dacc7518b@googlegroups.com> <5805fc79$0$5164$65785112@news.neostrada.pl>Show Full Headers
Complete Article Headers
X-Received: by 10.200.54.221 with SMTP id b29mr660104qtc.54.1476788447638; Tue, 18 Oct 2016 04:00:47 -0700 (PDT) X-Received: by 10.157.54.141 with SMTP id h13mr132909otc.20.1476788447596; Tue, 18 Oct 2016 04:00:47 -0700 (PDT) Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!goblin1!goblin.stu.neva.ru!feeders.as203319.net!feeder02.as203319.net!2.eu.feeder.erje.net!feeder.erje.net!2.us.feeder.erje.net!newspeer1.nac.net!border2.nntp.dca1.giganews.com!nntp.giganews.com!f6no2078992qtd.0!news-out.google.com!203ni1733itk.0!nntp.google.com!66no728484itl.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail Newsgroups: pl.comp.bazy-danych Date: Tue, 18 Oct 2016 04:00:47 -0700 (PDT) In-Reply-To: <5805fc79$0$5164$65785112@news.neostrada.pl> Complaints-To: groups-abuse@google.com Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=83.238.28.151; posting-account=MZqKhQoAAAD5JCk5fBCRURrOJPrkLjus NNTP-Posting-Host: 83.238.28.151 References: <f97272db-262f-4f16-912e-f32dacc7518b@googlegroups.com> <5805fc79$0$5164$65785112@news.neostrada.pl> User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: <90e65a90-a2de-4a6f-bbe1-be122db4ebce@googlegroups.com> Subject: Re: [mysql] Łączenie danych z wielu tabel From: kamil.sobczyk@gmail.com Injection-Date: Tue, 18 Oct 2016 11:00:47 +0000 Lines: 110 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit