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

标签 mysql phpmyadmin

Image showing example report, empty

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

最佳答案

这是一个猜测,因为你的问题不太清楚。您正在寻找一对多模式来保存此数据集合。

看起来您有两个实体(用 entity-relationship data modeling 的说法)。

  1. 评论
  2. 审核错误

评论与评论错误具有一对多关系:每个评论可能有零个或多个与其关联的评论错误。您在图像中显示了两个,但您仍然应该使用一对多关系。

您的 Review 实体会变成这样的表格

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

您的 Review Error 实体会变成这样的表格

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_error行的review行。

如果您希望图像中显示框和列标题,则需要使用客户端程序生成它们。例如,您可以定义 HTML 表格中单元格的边框。

关于mysql - 如何创建一个表,其中一列包含具有不同 id 的所有行的相同值?(请参阅布局以了解清楚),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50925105/

相关文章:

Mysql join 给出重复行

mysql - MySQL中的JOIN查询顺序

mysql - 从 sql 备份文件更新 1 列

phpmyadmin - The selected user was not found in the privilege table 在PhpMyAdmin中创建用户时出现错误

mysql - 在C中将mysql数据库查询存储为变量

php - Android发送数据到mysql

mysql - 将列值/字段/行从一个表复制到另一个表

mysql - phpmyadmin - 如何设置依赖于外键的字段值?

PHP/MySQL 查询。选择一个或另一个

mysql - 使用 update 和 select 语句更新 mysql 表中的列