MS SQL n:m Relation Concat Problem



  • Hallo,

    Ich habe ein Problem. Wir haben eine Kontakt-Tabelle mit ca 1,2M einträgen
    und wir haben eine Tabelle mit Kollektionsschlüsseln ca. 1400. Zwischen Kontakt und Kollektionsschlüsseln besteht eine n:m Beziehung. Die entsprechende
    Relationstabelle hat ca 14,5M Einträge. Ich habe eine Oberfläche gebaut
    bei der, der Kunde einen Kontakt nach diesen Schlüsseln suchen können soll.
    Der Kunde kann max 15 dieser Schlüssel hinzufügen und die Verknüpfung wählen
    (UND, ODER, UND NICHT).

    Um das zu ermöglichen denke ich muss man die Schlüssel Concatenieren, dass
    man sowas erhält wie:

    Kunde1 schlüssel1 schlüssel2 ....

    Leider bin ich kein Datenbankexperte ich habe folgendes Probiert:

    SELECT ContactBase.FullName,  
    STUFF((SELECT ','+ok_kollektionsschluessel.ok_Kollektionsschluessel 
    FROM
    ok_kollektionsschluessel 
    INNER JOIN ok_contact_ok_kollektionsschluessel ON ok_kollektionsschluessel.ok_kollektionsschluesselId = ok_contact_ok_kollektionsschluessel.ok_kollektionsschluesselid
    INNER JOIN ContactBase ON ContactBase.ContactId = ok_contact_ok_kollektionsschluessel.contactid
    FOR XML PATH('')),1,1,'') AS BLah FROM ContactBase
    

    das führt nur leider dazu das mir die festplatte der VM vollläuft und
    SQL sich aufhängt. Ich vermute ich habe hier eine Query-schleife gebaut.

    Was mache ich falsch, wie kann ich dieses Problem lösen?

    Danke


Anmelden zum Antworten