泛化中的 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)

解决方法

这是一个简单的 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