我有一个电影、发行年份、演员、导演的数据库。我需要一个查询,如果年份大于或等于用户输入的给定年份,则返回电影标题。我创建的规则如下。 M 和 Y 是电影标题和年份,我的参数 Y>=QYear 应仅返回 movie(M,Y),其中电影年份大于或等于用户在调用此规则时输入的年份,但相反,运行规则时我只收到 true 输出。任何人都可以对我在这里做错的事情提供一些指导吗?
movies_released_after(QYear, QMovie):- 电影(M,Y), Y>=QYear。
在您的示例中,您的子句的后件(
QMovie
左侧的部分)中有一个名为 :-
的变量,该变量未在先行词(:-
右侧的部分)中使用。
请尝试在调用
QMovie
时也使用 movie/2
。这将导致 QMovie
与 movie/2
匹配的值统一。
示例:
movies_released_after(QYear, QMovie):- movie(QMovie,Y), Y>=QYear.