- Id (PK)
- proprietario int testo
- DescriptionText
che è unita ad un'altra tabella
- Id (FK)
- partecipante int
il proprietario può essere un partecipante, e se lo è, lo stesso riferimento (in tabella utente) è proprietario e partecipante. Così ho fatto:
SELECT TableA.Id,TableA.Owner,TableA.Text
FROM TableA
WHERE [email protected]
UNION
SELECT TableA.Id,TableA.Owner.TableA.Text
FROM TableA LEFT JOIN TableB ON (TableA.Id=TableB.Id)
WHERE TableB.Participant = @User
Questa query deve restituire tutti i set di dati distinti in cui un determinato utente @ è proprietario o partecipante o entrambi.
E sarebbe, se SQL Server non sarebbe buttare
Il testo tipo di dati non può essere utilizzato come operando al UNION, INTERSECT o EXCEPT operatori perché non è comparabile.
Poiché Id è un PK e Testo proviene dalla stessa tabella, perché SQL Server desidera confrontare il testo?
Posso usare UNION ALL
per arrestare il rilevamento dei duplicati, ma posso eludere ciò senza perdere la nitidezza dei risultati?
Ehi, è l'insieme di dati distinto altrimenti? Solo un proprietario di un tavolo e registrato una sola volta come partecipante? –