Salve,
non riesco a postare con i tag di codice, e provo in plain text, quindi sara' formattato male...
non ho ben capito cosa in effetti cerchi di fare... @+m2+ ha probabilmente centrato il concetto, cioe' effettuare una proiezione che escluda le righe referenzianti nella tabella di "relazione" la riga da considerarsi "parent"...
questo, semplicemente, puo' essere ottenuto come
PRINT 'tutti i parent';
SELECT parent.[UNIQUE_ID], parent.[Descrizione]
FROM [dbo].[t] parent
LEFT JOIN [dbo].[t_t] child ON child.[IdChild] = parent.[UNIQUE_ID]
WHERE child.[IdParent] IS NULL;
-------------
tutti i parent
UNIQUE_ID Descrizione
----------- -----------
1 ROSSI
4 BIANCHI
6 VERDI
la proiezione "normale" completa e' ovviamente invece una semplice outer join, ordinabile sicuramente per la relazione parent-child, quindi non c'e' niente da indicare...
poi potresti aver chiesto anche "altre cose", ma come dicevo, non mi e' chiara la richiesta, tipo ad esempio una rapprestanzione "testuale" ad albero delle relazioni parent-child come in un "treeview",
Parent
--- Child
--- Child
Parent
--- Child
ed anche qui non e' particolarmente complicato in quanto la popolazione dei dati prevederebbe (nell'esempio) 2 soli livelli, e quindi e' gestibile anche con una costante, ma si puo' ovviamente anche scrivere una query ricorsiva tipo
PRINT 'rappresentazione "testuale" parent/children';
WITH ctePar AS (
SELECT parent.[UNIQUE_ID], parent.[Descrizione]
, parent.[UNIQUE_ID] AS [ref], 1 AS [lvl]
FROM [dbo].[t] parent
LEFT JOIN [dbo].[t_t] child ON child.[IdChild] = parent.[UNIQUE_ID]
WHERE child.[IdParent] IS NULL
UNION ALL
SELECT child.[UNIQUE_ID], child.[Descrizione]
, parent.[UNIQUE_ID] AS [ref], parent.[lvl] + 1
FROM ctePar parent
JOIN [dbo].[t_t] tt ON tt.[IdParent] = parent.[UNIQUE_ID]
JOIN [dbo].[t] child ON child.[UNIQUE_ID] = tt.[IdChild]
)
SELECT c.[UNIQUE_ID]
, REPLICATE ( '--', c.[lvl] -1) + ' ' + c.[Descrizione] AS [shifter]
FROM ctePar c
ORDER by c.[ref], c.[lvl], c.[UNIQUE_ID];
-----------
rappresentazione "testuale" parent/children
UNIQUE_ID shifter
----------- ----------------------------------
1 ROSSI
2 -- ROSSI1
3 -- ROSSI2
4 BIANCHI
5 -- BIANCHI1
6 VERDI
dipende tutto da "cosa" desideri ottenere...
saluti omnia
--
Andrea