Я не знаю, почему я не могу понять это банкомат. Вот очень надуманный пример .
create table Dog (
[Name] varchar(10),
[BreedId] int
);
create table Breed (
[BreedId] int,
[Name] varchar(10)
);
insert into DOG (name, breedid)
VALUES ('Mix', 1),
('Mix2', 2),
('Mix2', 3);
insert into breed(breedid, name)
VALUES
(1, 'BullDog'),
(1, 'Poodle'),
(2, 'BullDog'),
(2, 'Poodle'),
(4, 'Poodle');
Следующее создает две строки, потому что таблица соединения имеет два совпадающих значения, я просто хочу одно значение , пока есть совпадающеезапись справа .
select d.*
from dog d
inner join breed b on d.breedid = b.breedid
Результаты:
Микс 1
Микс 1
Микс 2
Mix 2
Есть ли способ сделать это в предложении объединения / без выполнения select
в выражении where или другомварианты, такие как группировка по.
select d.*
from dog d
where d.breedid in (select breedid from breed)