[MySQL]Artist & genres

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb volgende tabellen:

Artists
artistId
artistName
genre1
genre2
genre3

Genres
genreId
genre


Nu wil ik een query genereren zodat ik het volgende kan weergeven:

Artiest: $artistName
Genre 1: $genre1
Genre 2: $genre2
Genre 3: $genre3

Ik heb alleen geen idee op wat ik zou moeten zoeken in google om deze query zelf te maken.

Acties:
  • 0 Henk 'm!

Verwijderd

Dit kan je sowieso beter doen met een derde tabel om de genre's aan een artiest te koppelen. Op deze manier ben je gebonden aan max 3 genres.

Daarna is het goed te doen via een SQL join (Wikipedia: Join (SQL)))

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Een artiest mag ook maar maximum drie genres kiezen... Maar ik zal de Join eens bekijken, nu weet ik waar ik op moet zoeken. Maakt het een stuk makkelijker.

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Verwijderd schreef op dinsdag 08 december 2009 @ 17:29:
Een artiest mag ook maar maximum drie genres kiezen...
En wat dan als over een jaar besloten wordt dat het er 5 moeten zijn? Of 10? Of dat er geen limiet aan moet hangen? Doe eens wat lezen over normaliseren. ;)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
NMe schreef op dinsdag 08 december 2009 @ 17:45:
[...]

En wat dan als over een jaar besloten wordt dat het er 5 moeten zijn? Of 10? Of dat er geen limiet aan moet hangen? Doe eens wat lezen over normaliseren. ;)
Daar had ik inderdaad nog niet bij stilgestaan. Ik weet wel wat van normaliseren, maar dit heb ik over het hoofd gezien ja. Ik ga het eens bekijken of ik het niet beter met een koppeltabel doe.

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Koppeltabel of niet overigens, het antwoord op je vraagt blijft nog steeds "join". :P

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Nu heb ik een extra tabel:
linkGenres
artistId
genreId

SQL:
1
2
3
4
5
6
7
SELECT
artists.artistName,
genres.genre
FROM
artists
Inner Join linkGenres ON linkGenres.artistId = artists.artistId
Inner Join genres ON linkGenres.genreId = genres.genreId


Met deze query krijg ik wel drie records, is er geen mogelijk om 1 record te krijgen met de verschillende genres als aparte waarde?

Acties:
  • 0 Henk 'm!

  • cariolive23
  • Registratie: Januari 2007
  • Laatst online: 18-10-2024
Kan wel, maar waarom zou je het willen? Voor de weergave? Regel dat in je weergave en vooral niet in je query. Doe je het wel in je query, krijg je weer een hardcoded query die je weer moet gaan aanpassen wanneer je ineens een genre meer of minder wilt laten zien. Laat dat soort zaken over aan je presentatielayer, daar loop je veel minder risico op functionele fouten. Het is "maar" presentatie.
Pagina: 1