【问题标题】:MySQL Join Columns from a table and place into rows in another tableMySQL 连接表中的列并放入另一个表中的行
【发布时间】:2020-05-12 11:49:43
【问题描述】:

有没有办法将表 1 中的列连接到表 2 中的行?我了解 MySQL 没有枢轴功能。 为简化起见,我有 3 列的 TABLE_1

Id  posted_date     column_1    column_2    column_3
4   2020-05-06      23            54        89
3   2020-05-05      21            49        75
2   2020-05-04      18            47        70
1   2020-05-03      16            40        65

从上面的table_1我希望更新最近的条目(id=4),那么每次有新的条目进入table_1就会自动更新table_2,所以当输入id=5时会覆盖table_2中的数据 表_2

column     value
column_1    23
column_2    54
column_3    89

我一直在寻找和学习联接,但我似乎找不到能够做到这一点的联接。

SELECT table_1.column_1, table_1.column_2, table_1.column_3
FROM table_1
INNER JOIN table_2
ON table_2.column = ??

【问题讨论】:

  • 表1中只有columns_1-column_3,表2中只有3行?
  • 您应该使用应用程序来格式化数据,留下 SQL 只是为了快速获取它。 SELECT column_1,column_2,column_3 FROM TABLE_1 ORDER BY Id DESC LIMIT 提供您需要的信息。
  • 嗨 danblack,是的,这将为我提供所需的信息,但我需要将它们放入不同的表中的一列中,每个表都有一行以及值。因此,为什么我要尝试在两个表之间进行连接,
  • 嗨 P.Salmon,是的,三列的 table-1 的最后一个条目,我正在尝试进行连接,所以它将最后一个条目放入 Table_2 的行中(一行对于每一列和每一行的 table_2 我都有列名和值,所以会有三行,每行有两列)。
  • 谢谢草莓,但我看不出有什么帮助,我阅读了页面并带我去小提琴,但没有给我答案

标签: mysql


【解决方案1】:

在寻找解决方案三天后,我放弃并创建了一个触发器。

DELIMITER $$
CREATE TRIGGER `hello` AFTER INSERT ON `table_1`
 FOR EACH ROW
BEGIN
    DELETE FROM table_2;
    INSERT INTO table_2( `column`,`value`)VALUES( 'column_1',NEW.column_1);
    INSERT INTO table_2( `column`,`value`)VALUES( 'column_2',NEW.column_2);
    INSERT INTO table_2( `column`,`value`)VALUES( 'column_3',NEW.column_3);
END;

【讨论】:

    猜你喜欢
    • 2023-03-03
    • 2020-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多