如何创建一个表,其中一列包含具有不同id的所有行的相同值?(请参阅布局)

dohp0rv5  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(258)


在此表中,所有错误代码的分数、开始日期和完成日期都相同,但在开始时将作为输入。

kxeu7u2r

kxeu7u2r1#

这是猜测,因为你的问题不太清楚。您正在寻找一对多模式来保存此数据集合。
看起来您有两个实体(用实体关系数据建模的说法)。
回顾
复查错误
审阅与审阅错误之间存在一对多关系:每个审阅都可能有零个或多个与之关联的审阅错误。您在图像中显示了两个,但仍应使用一对多关系。
您的审阅实体将变成这样一个表

review:
   review_id    INT   PK
   type         1=Peer Review, 2= Internal Review
   score        FLOAT?  INT?
   start_date   TIMESTAMP
   end_date     TIMESTAMP

您的检阅错误实体变成这样一个表

review_error_id    INT PK
review_id          INT FK to review table
ordinal            INT   0,1,2 showing order of items in report
error              VARCHAR(255)  
description        VARCHAR(255)
quantity           INT? FLOAT?

然后要生成示例表所暗示的报告,需要

SELECT review.type,
        review_error.error,
        review_error.description,
        review_error.quantity
        review.score,
        review.start_date,
        review.end_date
   FROM review
   LEFT JOIN review_error ON review.review_id = review_error.review_id
  ORDER BY review.review_id
           review_error.ordinal

你用 LEFT JOIN 因为平凡 JOIN 将抑制 review 没有匹配的行 review_error 排。
如果希望在图像中显示框和列标题,则需要使用客户端程序生成这些框和列标题。例如,可以在html表格中的单元格周围定义边框。

相关问题