我目前正在使用SQL Server学习SQL。我有两个表,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 :(得分:3)
你真的不应该想通过sql这样做;这不是sql打算实现的目标。应该在演示级别的客户端代码中处理这种结果。我猜你只是不明白如何正确使用结果集。您打算如何处理您不希望每行重复使用authorname的结果集?