我有這些表:重複數據,顯示空白代替
CREATE TABLE [dbo].[Books] (
[id] int IDENTITY(1, 1) NOT NULL
, [Title] varchar(1000) NOT NULL
, [Publisher] varchar(1000) NULL
, [ISBN] varchar(50) NULL
, [Pages] int NULL
, [Date] date NULL
, [Plot_Summary] varchar(MAX) NULL)
ON [PRIMARY]
CREATE TABLE [dbo].[Characters] (
[id] int IDENTITY(1, 1) NOT NULL
, [Name] varchar(1000) NOT NULL)
ON [PRIMARY]
CREATE TABLE [dbo].[Book_Char] (
[id] int IDENTITY(1, 1) NOT NULL
, [Book_id] int NOT NULL
, [Char_id] int NOT NULL)
ON [PRIMARY]
當我使用此查詢:
SELECT b.title AS Title
, c.[Name] AS Char_Name
, b.Plot_Summary AS Summary
FROM Books b
INNER JOIN Book_Char bc ON b.id = bc.Book_id
INNER JOIN Characters c ON c.id = bc.Char_id
自然,我得到這樣的結果:
Title Char_Name Summary
---------------------------
title1 Name1 Summary1
title1 Name2 Summary1
title1 Name3 Summary1
title2 Name1a Summary2
title2 Name2a Summary2
title2 Name3a Summary2
我想要的是:
Title Char_Name Summary
---------------------------
title1 Name1 Summary1
Name2
Name3
title2 Name1a Summary2
Name2a
Name3a
我在工會的嘗試:
SELECT '' AS Title
, c.[Name] AS Char_Name
, '' AS Summary
FROM Books b
INNER JOIN Book_Char bc ON b.id = bc.Book_id
INNER JOIN Characters c ON c.id = bc.Char_id
UNION
SELECT b.title
, ''
, b.Plot_Summary
FROM Books b
INNER JOIN Book_Char bc ON b.id = bc.Book_id
INNER JOIN Characters c ON c.id = bc.Char_id
給出:
Title Char_Name Summary
---------------------------
Name1
Name1a
Name2
Name2a
Name3
Name3a
title1 Summary1
title2 Summary2
我是新來的工會,而我甚至不知道這是否是這裏的正確答案。我需要明白這一點;我不只是在尋找codez。我該怎麼做,它是如何工作的?
哦,我的,那工作。正是我想要的。是的,我忘記了'ORDER BY'語句,我在蟾蜍的查詢中已經有了它。我只是在複製時沒有抓住它。我從來沒有用過''。我用過分區,不敢相信我不記得那個。我猜,太關注'UNION'了。我必須去研究這個。 「seqnum」從哪裏來?謝謝你! – pixelmeow 2014-10-26 14:56:17
我是盲人。我看到seqnum。沒關係那部分。 – pixelmeow 2014-10-26 15:02:26