gpt4 book ai didi

mysql - 如何在mysql中创建具有规范化属性的 View ?

转载 作者:行者123 更新时间:2023-11-29 14:46:46 25 4
gpt4 key购买 nike

我的数据库中有两张表,一张是个人的,一张是他们的属性。

CREATE  TABLE IF NOT EXISTS `person` (
`ID` INT NOT NULL AUTO_INCREMENT ,
PRIMARY KEY (`ID`) )
ENGINE = InnoDB

CREATE TABLE IF NOT EXISTS `property` (
`ID` INT NOT NULL AUTO_INCREMENT ,
`person_ID` INT NULL ,
`property` VARCHAR(45) NULL ,
`value` VARCHAR(45) NULL ,
PRIMARY KEY (`ID`) )
ENGINE = InnoDB

在属性表中,我会插入类似

(,1,'姓名','玛丽')(,1,'性别','女')

(,2,'姓名','约翰')(,2,'性别','男')(,2,'高度','165cm')

我将如何制作可以生成这些列的 View 语句:person_ID、姓名、性别、高度(以及可能出现的任何其他属性)

提前谢谢您,

最佳答案

试试这个。

SELECT
p.ID, prop.name, prop.gender, prop.height
FROM
person p
JOIN
(
SELECT
person_ID,
MAX(IF(`property` = 'name', `value`, NULL)) AS name,
MAX(IF(`property` = 'gender', `value`, NULL)) AS gender,
MAX(IF(`property` = 'height', `value`, NULL)) AS height
FROM
property
GROUP BY
person_ID) prop
ON p.ID = prop.person_ID;

请注意,在此解决方案中,所有字段和值都是硬编码的。

关于mysql - 如何在mysql中创建具有规范化属性的 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6816037/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com