我正在尝试创建一个新表,该表将包含三个现有表中的选定数据。
现有的三个表设置如下,我想要的结果在底部:
people
id last_name first_name email
1 Smith Fred Fred@..
2 Jones Tom Tom@..
3 Doe Jane Jane@..
taxonomy
id taxonomy
1 age
2 gender
3 height
details
id person_id detail_id content
1 1 1 36
2 1 2 M
3 1 3 5'10"
4 2 1 29
5 2 2 M
6 2 3 6'3"
7 3 1 27
8 3 2 F
9 3 3 5'8"
New Table
id last_name first_name email age
1 Smith Fred Fred@.. 36
2 Jones Tom Tom@.. 29
3 Doe Jane Jane@.. 27
在此先感谢您的帮助!
您需要进行三向联接:
CREATE TABLE new_table AS
SELECT p.*, d.content AS age
FROM people AS p
JOIN details AS d ON d.person_id = p.id
JOIN taxonomy AS t ON t.id = d.detail_id
WHERE t.taxonomy = 'age'
演示
或者,如果您已经创建了表,则可以执行以下操作:
INSERT INTO new_table (id, last_name, first_name, email, age)
SELECT p.id, p.last_name, p.first_name, p.email, d.content AS age
FROM people AS p
JOIN details AS d ON d.person_id = p.id
JOIN taxonomy AS t ON t.id = d.detail_id
WHERE t.taxonomy = 'age'
要获得多个属性,您必须分别为每个属性将详细信息和分类表联接在一起:
CREATE TABLE new_table AS
SELECT p.*, d1.content AS age, d2.content AS gender, d3.content AS height
FROM people AS p
JOIN details AS d1 ON d1.person_id = p.id
JOIN taxonomy AS t1 ON t1.id = d1.detail_id
JOIN details AS d2 ON d2.person_id = p.id
JOIN taxonomy AS t2 ON t2.id = d2.detail_id
JOIN details AS d3 ON d3.person_id = p.id
JOIN taxonomy AS t3 ON t3.id = d3.detail_id
WHERE t1.taxonomy = 'age' AND t2.taxonomy = 'gender' AND t3.taxonomy = 'height'
问题内容: 是否可以在带有子选择的mysql 5.0上运行UPDATE命令。 我要运行的命令是这样的: ISBN13当前存储为字符串。 这应该更新10k +行。 谢谢, 威廉 问题答案: 只需更改一下即可:
问题内容: 我有一个带有Tag列的表,其中包含大约1000个不同的标签。我想为每个不同的标签创建一个带有列的新表,该列名称将是标签值。使用T- SQL是否有一种简便的方法来做到这一点?SQL Server 2005及更高版本中的任何内容都可以。 这是我的意思的示例: 更新: 我知道限制(在表中的列数上),但是列不会稀疏,并且任何列中都不会有null或0值。 我想要此表的原因是我想针对此新表的列运行
Mysql不允许在同一数据库表中有两个自动更新时间戳列。但是,许多人喜欢为他们的表“创建”和“更新”列,因为这种信息很有用,所以必须有一些解决方法。根据我收集的内容,一列必须是日期时间,另一列必须是时间戳。datetime 列可以用作创建的列,当默认为 null 时,使用触发器插入时,它将自动采用当前时间戳值。时间戳列可以用作更新的列,并且可以配置为按照mysql文档的描述自动更新。这两个页面对于
如何在MySQL中为此查询创建索引?
问题内容: 我有两个数据库,我想用另一个数据库表中的值更新一个表。我正在使用以下查询,但它不起作用。 我也尝试了以下查询,但它也不起作用: 问题答案: 更新1 根据您的评论,应成为联接的一部分。这是正确的: 您甚至可以添加来简化语句,
问题内容: 我有一个JSF数据表,它有三列,分别是:Work_Type_Desc,Project_Phase和Activity_Desc。这些列来自2个不同的数据库表,这两个表之间的关系是一对多的。 第一个表的名称为Work_Type。它具有1)Work_Type_Cd,2)Work_Type_Desc,3)Created_By_Name,4)Created_DT,5)Updated_By_Nam