Я хочу написать SP, который я буду использовать в моей программе на c #. У меня есть три таблицы: Table1 (id pk, name, ...), Table2 (id PK, name, ...) и Table3 ((idT1, idT2) PK FK). Таким образом, таблица 3 моделирует отношения n: n между таблицей 1 и таблицей 2.
Я хочу получить все имена Table2.name, связанные с одним Table1.name.
Я уже пытался написать запрос с двумя внутренними объединениями
CREATE PROCEDURE slct
@name nvarchar(50)
AS
BEGIN
SET NOCOUNT ON;
SELECT Table2.name from Table2
join Table3 on Table2.id = Table3.idT2 join Table1 on Table1.id = Table3.idT1 where Table1.name = '%'+@name+'%'
END
GO
Table1
|1|abc|
|2|def|
Table2
|1|xyz|
|2|mno|
Table3
|1|1|
|1|2|
|2|2|
В результате я вижу больше записей, чем необходимо. Я ожидал, что список Table2.name связан с одним Table1.name (указывается параметром @name)
извините за мой английский.