门票有效期为 24 小时,可以是“儿童”、“成人”或“青少年”。本质上,一张票可以“连接到”多部电影。例如,儿童票将与年龄分级为 PG 或以下的电影相关联,而成人票将与每部电影相关联。
以下返回上个月购买的所有电影票的信息:
SELECT *
FROM
[Test_DB].[dbo].[Tickets]
INNER JOIN
[Test_DB].[dbo].[Movies]
ON
[Test_DB].[dbo].[Tickets].[ConnectedTo] = [Test_DB].[dbo].[Movies].[MovieID]
WHERE
[Test_DB].[dbo].[Tickets].[DateEntered] >= DATEADD(month, DATEDIFF(month, 0, GETDATE())-1, 0) AND [Test_DB].[dbo].[Tickets].[DateEntered] <= DATEADD(month, DATEDIFF(month, 0, GETDATE()), -1)
每张票可以附有任意数量的注释。例如,如果向持票人提供了特别折扣,则会为此创建注释。同样,如果将一张票换成另一张票或退款,则会创建一个注释。
下面将根据 TicketID 返回给定 Ticket 的所有注释:
SELECT *
FROM
[Test_DB].[dbo].[Tickets]
JOIN [Test_DB].[dbo].[Notes]
ON [Test_DB].[dbo].[Tickets].[TicketID] = [Test_DB].[dbo].[Notes].[ConnectedTo]
WHERE TicketId = 64903
我的问题是,有没有办法将两者结合起来?例如,SQL 的第一位可以返回 5 张票,每张票都有不同的 TicketID。基于此,我想利用我的第二个 SQL 来返回这 5 张票的所有注释。
我正在考虑使用 UNION 来组合这两个选择......虽然我的大脑一直告诉我我需要在 TicketId 上加入两条 SQL,但是每次我尝试它都会出错。任何帮助将不胜感激!谢谢。