「データ関係」(https://msdn.microsoft.com/en-us/library/ms810294.aspx)について読んでいましたが、その動作については混乱しました。たとえば、上記の結果を返すときにSQL Serverはデータを複製しますか、冗長性を避けるために任意のインテリジェントな方法で返しますか?ネットワークトラフィックに関する懸念
create table #category(Id int, Name varchar(100))
create table #product(Id int, Name varchar(100), CategoryId int)
insert into #category values (1, 'category 1')
insert into #product values (1, 'Product 1', 1)
insert into #product values (2, 'Product 2', 1)
insert into #product values (3, 'Product 3', 1)
insert into #product values (4, 'Product 4', 1)
insert into #product values (5, 'Product 5', 1)
select * from #product left join #category on #product.categoryid = #category.id
これはデータベース101です。あなたの 'category'テーブルにあなたの' product'テーブルに参加しています。各製品に同じ 'categoryid'がありますので、' category.name'はそれぞれ同じものになります。どのようにそれを期待するだろうか?それは「重複データ」ではありません。これはそのレコードの製品のカテゴリ名です。 – JNevill
@JNevill私はOPの質問が重複したデータを返すときのSQLの効率性に関して、それを例として単純に使っていると理解しました。私は個人的にはどちらの方向にも自信がありませんが、確かにいくつかの説明から恩恵を受けることができます。 – Santi
@サンティ、それを編集してください。私の英語は、より正確なことはあまり良くありません。 – MuriloKunze