Herhalende uitvoer voorkomen in SQL statement

Pagina: 1
Acties:

  • GaMbiNo
  • Registratie: April 2001
  • Laatst online: 22:49
De situatie is als volgt: Ik heb twee tabellen waarvan ik de records wil uitlezen middels een SQL query.
De tabellen zijn als volgt:

Tabel 1:
Artiest
Cd titel
Genre
Afbeelding (url)
Prijs
Cd Code (autonummering)

Tabel 2
Cd Code
Songtitel

Dit werkt prima maar als ik dan een query op deze twee tabellen doe krijg ik als uitvoer bv:

De Kast Noorderzon Nederlandstalig www.dekast/blaat.jpg 12,99 Woorden
De Kast Noorderzon Nederlandstalig www.dekast/blaat.jpg 12,99 De Zon
De Kast Noorderzon Nederlandstalig www.dekast/blaat.jpg 12,99 Jij
enz.

Wat ik wil is:
De Kast Noorderzon Nederlandstalig www.dekast/blaat.jpg 12,99 Woorden, De Zon, Jij
enz

Ik kreeg dus steeds die repeterende informatie.
Een simpele SELECT DISTINCT helpt hierin dus niet.
Iemand die weet hoe ik dit oplos?

  • DeverauX
  • Registratie: Februari 2002
  • Niet online

DeverauX

Focus is everything

GROUP BY Cd Code. Voor uitleg over group by clausules zie www.w3schools.com/sql/

[ Voor 4% gewijzigd door DeverauX op 18-02-2003 07:17 ]

...whatever was distasteful or unpleasant or uncomfortable or painful - music could always soothe that.
All you have to do is reach out to beauty.
Quincy Jones


  • whoami
  • Registratie: December 2000
  • Laatst online: 16:37
Een distinct werkt inderdaad niet omdat de rijen niet herhalend zijn. Je laatste kolom is iedere keer verschillend.
Een Group By zal ook niet werken denk ik, aangezien je op alle columns moet groupen die geen aggregate zijn. (In jouw geval dus op alle columns).

https://fgheysels.github.io/


Verwijderd

je bedoelt

cd info allemaal, liedje 1, liedje 2, liedje 3, ...

onmogelijk, je kan in een rij uit je resultset niet meerdere rijen uit je ene tabel(liedjes) als aparte kolommen hebben

je zult inderdaad alles gewoon moeten selecteren!! tenzij je een postrelationele databank ter beschikking hebt? dankun je arrays terugkrijgen geloof'k.

  • EfBe
  • Registratie: Januari 2000
  • Niet online
die commalijst moet je in de client oplossen. De database server weet niets van je client, die geeft alleen een lijstje met data terug. Je zult dus zelf door de rowset moeten lopen en de lijst met songs achter elkaar moeten prakken. Op zich niet zo moeilijk, het is een simpel loopje.

Creator of: LLBLGen Pro | Camera mods for games
Photography portfolio: https://fransbouma.com


  • GaMbiNo
  • Registratie: April 2001
  • Laatst online: 22:49
Ok, kan niet dus. 8)7
We zoeken verder.
AngelDust had al een mooie ASP oplossing liggen daar gaan we nu ff naar kijken. :)

Verwijderd

Als je sqlserver gebruikt kan je het vrij makkelijk oplossen via een user defined function:

Deze gebruik ik bijvoorbeeld om thumbnail op te halen van een object:

code:
1
2
3
4
5
6
7
8
9
CREATE FUNCTION dbo.sda_udf_Object_GetThumbnail
    (@obj_ID int)
    RETURNS varchar(30)
AS
BEGIN
    declare @thumb varchar(30)
    SELECT @thumb= fot_Bestandsnaam FROM bog_Foto WHERE  fot_IndHoofdfoto = 1 AND fot_obj_ID = @obj_ID
    RETURN @thumb
END


Vervolgens in select:

SELECT bog_Object.obj_ID,
isnull(dbo.sda_udf_Object_GetThumbnail(bog_Object.obj_ID),'''') as thumbnail
FROM bog_Object
Pagina: 1