Ik krijg het weer niet in orde.
COUNT(DISTINCT st.subtitel) aantal zou het aantal subtitels in een hoofdtitel moeten geven.
als ik
JOIN
strips_subtitels st
ON st.id = s.uniek
er uit laat heb ik al mijn titels echter ik zou ook willen weten of er wel subtitels zijn en hoeveel.
De velden met relaties vind je hier:
SELECT
s.nummer,
titel,
if(koopdatum="1900-01-00","",DATE_FORMAT(koopdatum, "%d-%m-%Y")),
if(koopdatum="1900-01-00","",DATE_FORMAT(verschijndatum, "%d-%m-%Y")),
Prijs,
druk,
if(nogniet,"X",""),
if(vermist,"Ja",""),
opmerking,
kl.naam,
sc.naam,
te.naam,
ui.naam,
pl.naam,
uniek,
COUNT(DISTINCT st.subtitel) aantal
FROM
strips_reeksen r
JOIN
strips_strips s
USING (reeksnr)
JOIN
strips_subtitels st
ON st.id = s.uniek
LEFT JOIN
strips_kleurders kl
ON r.Kleurder = kl.nummer
LEFT JOIN
strips_schrijvers sc
ON r.Schrijver = sc.nummer
LEFT JOIN
strips_tekenaars te
ON r.tekenaar = te.nummer
LEFT JOIN
strips_uitgeverij ui
ON r.uitgever = ui.nummer
LEFT JOIN
strips_plaatsen pl
ON r.Kleurder = pl.nummer
where reeksnr=' . $sn . '
order by
s.nummer
;
Maar wil je dit
- Kuifje(2)
- Suske en Wiske (400)
Of
Kuifje(2)
- Kuifje in Afrika
- Kapitein Haddock kan zijn boot niet vinden
Suske en Wiske (400)
- Tante Sidonia is 10 kilo aangekomen
- Wiske heeft last van opvliegers
- enzovoort
?
Maak eerst een query met alleen de 2 tabellen voor de count en vul daarna de query aan met de andere namen (joins) van de tabellen.
Je kan wat consequent zijn met de benaming van je kolommen, bijvoorbeeld bij de ene tabel gebruik je nummer en de andere ID, bij het refereren van een tabel zet je "tabel" + NR en sommige weer niet, bij je tabel Reeks staan er opeens Reeks voor de kolommen en NL en ENG door elkaar heen
@ger:
dit heb ik al: http://www.janr.be/collecties/strips/
Maar sommige titels zoals vakantieboeken hebben meerdere titels. Deze wil ik dan ook laten zien.
@Lendl Verschoor: Ik heb nu al 7 joins. vandaar dat het voor mij moeilijk wordt.
de inconsistentie los ik later wel op. dit komt uit het verre verleden met access. ik copy nog wat code hieruit en later kan ik alles aanpassen met 1 zoek en vervang
Jan, het is inderdaad wel een beetje onoverzichtelijk, ik zie nu pas dat de kolom uniek je PK is.
Dus daar moet je de GROUP BY op doen (en officieel eigenlijk ook op alle andere niet aggegrate kolommen).
Dan moet je de JOIN op subtitels een LEFT JOIN maken anders krijg alleen de titels met subtitels.
Nu begin je vanuit de reeks tabel, maar die kan je gewoon weglaten want je hebt daar geen kolommen van in je select staan en schrijver etc. staan ook in de strips tabel.