2

模式

Movie(title, year, director, budget, earnings)
Actor(stagename, realname, birthyear)
ActedIn(stagename, title, year, pay)
CanWorkWith(stagename, director)

寻找多次使用的电影名称(SQL Robot DEATH MACHINE 2001、2002、2039)

SELECT M.title
FROM Movie A
LEFT JOIN Movie M ON M.title = A.title AND A.year <> A.year
WHERE M.title IS NULL

因此,当它找到另一个已在不同年份使用的标题时,它将显示电影标题

4

3 回答 3

1

假设 SQL 2008r2 并且电影基于 Title,Year,Director 是唯一的,那么:

;with cte as (
    Select *, count(*) over(partition by Title) dups
    From movie
)
Select * 
From cte
Where dups> 1

返回已多次使用的所有电影标题。如果你想限制在同一年的同名电影,只需将其添加到partition by即可。

于 2012-06-14T03:36:44.193 回答
1
SELECT
    title
FROM
    Movie
GROUP BY
    title
HAVING
    COUNT(*) > 1
于 2012-06-14T02:43:40.787 回答
0
Select M.Title
From Movie As M
Where Exists    (
                Select 1
                From Movie As M1
                Where M1.Title = M.Title
                    And M1.Year <> M.Year
                )
于 2012-06-14T04:45:28.903 回答