SQL Server - атрымаць бацькоўскую радок, і ўсе яго дзеці, у суадносінах 1: п

Я ў цяперашні час навучанне SQL, выкарыстоўваючы SQL Server. У мяне ёсць дзве табліцы, якія tbAuthors і tbBooks , як у наступным кодзе SQL:

CREATE TABLE [dbo].[tbAuthors](
    [id_Author] [int] NOT NULL,
    [nameAuthor] [varchar](50) NOT NULL,
 CONSTRAINT [PK_tbAuthors] PRIMARY KEY CLUSTERED ([id_Author] ASC)
)

CREATE TABLE [dbo].[tbBooks](
    [idBooks] [int] NOT NULL,
    [bookName] [varchar](50) NOT NULL,
    [FKAuthor] [int] NOT NULL,
 CONSTRAINT [PK_tbBooks] PRIMARY KEY CLUSTERED ([idBooks] ASC)ON [PRIMARY]
)

Тое, што я хачу, каб атрымаць толькі імя аўтара, і ўсе яго кнігі, без імя аўтара з'яўляецца паўторна, праз наступны запыт, я атрымліваю гэтыя дадзеныя:

select distinct ta.id_Author, ta.nameAuthor, tb.bookName 
from tbAuthors as ta 
inner join tbBooks as tb on tb.FKAuthor=ta.id_Author where tb.FKAuthor = 1 

і вынік SQL заключаецца ў наступным:

id_Author  nameAuthor   bookName
   1       Author1      Book1
   1       Author1      Book2
   1       Author1      Book3
   1       Author1      Book4 

Тое, што я хацеў бы ведаць, як я магу атрымаць запыт да выкладзенага ў наступным малюнку?

id_Author   nameAuthor   bookName
   1        Author1      Book1
 empty      empty        Book2
 empty      empty        Book3
 empty      empty        Book4

Ці можна атрымаць праз запыт, калі гэта так, як?

Дзякуем Вам за ўвагу да гэтай праблемы.

0
Сардэчна запрашаем у StackOverflow: калі вы размесціце код, xml або даных узораў, <б> калі ласка вылучыць гэтыя радкі ў тэкставым рэдактары і націсніце на кнопку «код ўзоры» ( {} ) на панэль інструментаў рэдактара, каб прыгожа фарматаваць і сінтаксісу трэба паставіць яго! Акрамя таго, старайцеся пазбягаць выкарыстання # занадта часта - гэта інтэрпрэтуецца, каб радкі ў загаловак (напрыклад,

і гэтак далей) і выклікае вельмі неахайна адлюстраванне табліц!

дададзена аўтар marc_s, крыніца

1 адказы

Вы сапраўды ніколі не павінны хацець зрабіць гэта з дапамогай SQL; гэта не тое, што SQL прызначаны для выканання. Такі вынік павінны быць апрацаваны ў кодзе кліента, на ўзроўні прадстаўлення. Я мяркую, што вы проста не разумею, як спажываць яшчэ правільна ResultSet. Што вы збіраецеся рабіць з выніковым наборам, што вы не хацелі б, каб AUTHORNAME паўтараецца для кожнага радка?

3
дададзена
Гэта як пытацца, як я магу выкарыстоўваць адвёртку, каб забіць цвік. Мы маглі б высветліць некаторыя convulated спосаб зрабіць гэта, але ён адсутнічае вялікая праблема, якая не выкарыстоўваецца SQL правільна.
дададзена аўтар Dylan Smith, крыніца
Дзякуй за ваш адказ, без сумневу, з C# код я магу, але я думаў, што гэта можна было зрабіць гэта з дапамогай SQL.
дададзена аўтар WizardDBA, крыніца