【发布时间】:2016-04-17 05:43:33
【问题描述】:
我有这个功能多对多表。
table Actor
-----------
Actorid Fullname
table entertainment
-------------------------
Entertainmentid Name Date
Actor_entertainment
-------------------------
Entertainmentid Actorid
我需要选择所有演员的姓名,并为每个演员选择最早的娱乐日期和该演员的姓名。
我构建了这个查询:
SELECT
a.fullname
, c.Name
, MIN(c.Date)
FROM Actor a
INNER JOIN Actor_entertainment b on b.Actorid = a.Actorid
INNER JOIN entertainment c ON c.entertainmentID = b.entertainmentID
GROUP BY
a.Fullname
查询效果很好,但我不确定 MIN 函数选择了正确的日期。您能否阅读此查询并告诉我我在某处错了?准确的说有可能出错吗?
谢谢。
【问题讨论】:
-
你会得到正确的日期。问题是你是否会得到正确的
entertainment.name。如果 dbms 是 Oracle,如果任何组中有多个名称,则会出现错误。