- Id (PK)
- Właściciel int tekst
- descriptionText
który jest dołączony do innej tabeli
- Id (FK)
- Uczestnik int
właściciel może być uczestnikiem, a jeśli jest, to samo odniesienie (w tabeli użytkownika) jest właścicielem i uczestnika. Więc zrobiłem:
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
To zapytanie należy zwrócić wszystkie różne zestawy danych, gdzie pewna @User jest albo Właściciel lub Uczestnik lub oba.
I byłoby, gdyby SQL Server nie rzucać
Tekst typu dane nie mogą być wykorzystywane jako argument do Unii przecinają lub OPRÓCZ operatorów, ponieważ nie jest porównywalna.
Ponieważ identyfikator to PK, a tekst pochodzi z tej samej tabeli, dlaczego SQL Server chciałby w ogóle porównać tekst?
Mogę użyć UNION ALL
, aby zatrzymać wykrywanie duplikatów, ale czy mogę to obejść bez utraty odrębności wyników?
Hej, to zbiór danych wyraźny inaczej? Tylko jeden właściciel stołu i zarejestrowany jako uczestnik tylko raz. –