首页 > 解决方案 > 泛化中的 SQL 查询

问题描述

关系模式:

Table comics(Generalization):
    comic_name: varchar(Primary Key)
    Created: boolean(Default = false)
    Group_name: varchar(55), (Not Null)
    Type: varchar(55), (Not Null)

Table Unreleased_comics(Specialization):
    comic_Name: Foreign Key(comics, comic_name)

Table Released_comics(Specialization):
    comic_Name: Foreign Key(comics, comic_name)
    Release_Date: date (Not Null)

ER 中的关系:Comics isA Unreleased_Comics 和 Released_Comics

列出 2001 年之前发布的所有漫画的 SQL 查询应该是什么?(MySQL)

标签: mysqldatabaserdbmser-diagrams

解决方案


选择正确的日期是一个简单INNER JOIN的更复杂的部分,但是你只想要年份,仍然很简单

SELECT 
    c.comic_name, c.Created, c.Group_name, c.Type, r.Release_Date
FROM
    comics crossINNER
        JOIN
    Released_comics r ON c.comic_name = r.comic_name
WHERE
    YEAR(r.Release_Date) < 2001

推荐阅读