Ich habe mehrere Tabellen mit einem Fremdschlüssel aus einer Haupttabelle. Die Tabellen sind wie folgt aus:So verketten Sie mehrere Zeilen effizient aus mehreren Tabellen
Schwestern
MainID IDNO ....
111111 1 ....
111111 1 ....
111111 1 ....
222222 1 ....
111111 2 ....
Brüder
MainID IDNO ....
111111 555 ....
111111 333 ....
111111 111 ....
222222 222 ....
111111 321 ....
Uncles
MainID IDNO ....
111111 561 ....
111111 121 ....
111111 331 ....
222222 451 ....
111111 672 ....
Ich muss concat enate alle IDNo
s in, aber ich kann nicht scheinen alle wie zum Beispiel zu bekommen vielleicht kann ich nicht 672
SELECT
',' + S1.IDNo + ',' + B1.IDNo + ',' + U1.IDNo AS [text()]
FROM
Sisters S1, Brothers B1, Uncles U1, MainTable
WHERE
D1.MainID = MainTable.ID
AND S1.MainID = MainTable.ID
AND B1.MainID = MainTable.ID
FOR XML PATH('')
Ich versuchte später zu trennen Tabellen und concanate aber es ist immer viel auf diese Weise langsamer. Was kann ich tun?
Erwartete Ausgabe:
,1,1,1,1,2,555,333,111,222,321,561,121,331,451,672
FYI : Haupttabelle hat ungefähr 200.000 Aufzeichnungen und die Untertabellen hat ungefähr 600.000 jeder. – jackjop
[Schlechte Angewohnheiten zu treten: Verwenden von alten JOINs] (http://sqlblog.com/blogs/aaron_bertrand/archive/2009/10/08/bad-habits-to-kick-using-old-style-joins. aspx) - diese alte * durch Kommas getrennte Liste von Tabellen * style wurde durch die * richtige * ANSI 'JOIN'-Syntax im ANSI - ** 92 ** SQL Standard ersetzt (** vor mehr als 20 Jahren **) und seine Verwendung wird davon abgeraten –
@marc_s Ich verwendete Joins auch die Geschwindigkeit ist nicht zu viel bewirkt – jackjop