我有两个通过用户 ID 链接的表。我想从两个表中创建一个新表,从每个表中提取几个字段。在一个表中,每个用户 ID 只有一行,在另一个表中,每个用户有几行数据。
第一个表很简单 - 所有数据都在一行中。
但是,在第二个表中,数据按行排列,每个用户 ID 都有几行。我只想为每个用户 ID 找到其中的四行,然后将它们插入到我的表中的一列中。这是下面的代码,但它不起作用。我可以像这样嵌套子查询吗?
INSERT INTO new_table
select table1.ID, table1.user_email, table1.display_name, table2.meta-value (where table2.meta_key = ‘pet’), table2.meta-value (where table2.meta_key = ‘color'), table2.meta-value (where table2.meta_key = ‘location), table2.meta-value (where table2.meta_key = ‘house'),
from table_1, table2
最佳答案
试试这个:
INSERT INTO new_table
(SELECT
t1.ID,
t1.user_email,
t1.display_name,
(SELECT meta-value FROM table2 AS t2 WHERE t2.meta_key = 'pet' AND t2.user_id = t1.user_id),
(SELECT meta-value FROM table2 AS t2 WHERE t2.meta_key = 'color' AND t2.user_id = t1.user_id),
(SELECT meta-value FROM table2 AS t2 WHERE t2.meta_key = 'location' AND t2.user_id = t1.user_id),
(SELECT meta-value FROM table2 AS t2 WHERE t2.meta_key = 'house' AND t2.user_id = t1.user_id),
FROM table_1 AS t1
)
但是,它没有经过测试,因为我没有找到有关表架构/数据的更多详细信息。希望这会有所帮助。
关于mysql - 从两个表创建一个表,其中数据在一个表中的行中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39122027/