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 
;
Als je count gebruikt in combinatie met andere kolommen, moet je altijd GROUP BY gebruiken
Bedank deze was er af gevallen.
	
GROUP BY
s.reeksnr, st.subtitel


maar dat helpt niet. waar moet ik nog op "groepen"?
Ik weet niet precies wat je terug wilt krijgen, maar je moet in ieder geval st.subtitel weglaten uit de group by
Ik wil alle velden welke in de sql staan + het aantal subtitels/reeksnr
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
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.
Bedankt,

Hopelijkt lukt het me de volgende keer.

Ik had nog 1 probleemje. Ik had altijd 0. Vergeten de subtitels op te laden.:)

Jan
Ow ja, nog even een tip:
Zet aliassen op die IF statements, dat maakt het je in PHP een stuk gemakkelijker om de waarde ervan op te vragen.

Reageren