hi!
ich habe folgendes problem, dass der mssql server, im gegensatz zu mysql alle spalten in der group by clause braucht, die auch ausgegeben werden…
so, das war jetzt ein bisschen vorgegriffen…die tabellenstruktur schaut so aus:
tabelle artikel:
a_id
a_titel
a_beschreibung
zwischentabelle _stichw_art:
sa_a_id //referenz id auf a_id
sa_stichw_id //referenz id auf stw_id
tabelle stichworte:
stw_id
stw_name
die zwischentabelle brauch ich, da jeder artikel beliebig viele stichworte zugewiesen bekommen kann. so, so weit so gut, gescheitert bin ich schlussendlich an der suche. probiert hab ichs mit folgendem sql, statement:
select * from
artikel, _stichw_art, stichworte
where
_stichw_art.sa_a_id = artikel.a_id and _stichw_art.sa_stw_id=stichworte.stw_id and
stichworte.stw_name like „%h%“
h ist dabei der eingegebene suchbegriff…
so weit so gut, funktioniert ja auch eingeitch sehr gut, nur…
wie verhindere ich dass mir artikel doppelt ausgegeben werden ???
wenn 2 stichworte den buchstaben h enthalten kríeg ich das ergebnis gleich 2mal und in folge dann halt noch öfter…
okay, erster versuch distinct…fehlgeschlagen weil ich kein distinct auf so longtext-spalten machen darf (a_beschreibung), oder wie auch immer die heißen, nur text glaub ich, jedenfalls die mit mehr als 255 zeichen…
okay, nächste möglichkeit, group by a_id…fehlgeschlagen weil ich alle die ich ausgeben will in der group by klausel oder in einer aggregatfunktion haben muss, dass aber mit text-spalten beides nicht möglich ist…
hoffe mir kann irgendwer das sql-statement so umbaun, dass das funktioniert…muss ja wohl irgendwie gehen…
ansonsten irgendwelche workarounds…dass ich z.b. pro schleife eine query schick oder so…
naja, egal, vielleicht kann mir ja wer helfen…
danke,
georg