【问题标题】:MySQL phpmyadmin inserting two values from two different tables and one given value into a third tableMySQL phpmyadmin 将两个不同表中的两个值和一个给定值插入到第三个表中
【发布时间】:2021-05-01 16:45:04
【问题描述】:

我的问题是:我需要将两个不同表中的两个值和一个由练习给出的值插入到第三个表中。

首先,我认为我需要来自两个单独表的数据,因此:

SELECT tablename1.id
FROM `tablename1`
WHERE tablename1.name LIKE "%example%";
SELECT tablename2.id
FROM `tablename2`
WHERE tablename2.name LIKE "%example%";

第三个值由练习给出,是一个数字

我想出了以下几点:

INSERT INTO tablename3 (tablename3.value1, tablename3.value2, tablename3.value3)
VALUES (SELECT tablename1.id FROM `tablename1` WHERE tablename.name LIKE "example", SELECT tablename2.id FROM `tablename2` WHERE tablename2.name LIKE "%example%"

加上 tablename3.value3 - 这将是练习给出的数字。

我的另一个尝试

INSERT INTO tablename3 (tablename3.value1, tablename3.value2, tablename3.value3)
VALUES (tablename3.value1 = (SELECT tablename1.id FROM `tablename1` WHERE tablename.name LIKE "example"), tablename3.value2 = (SELECT tablename2.id FROM `tablename2` WHERE tablename2.name LIKE "%example%"

然后我需要添加 tablename3.value3 - 这将是练习给出的数字。

tablename3.value 1 等于 tablename1.id; tablename3.value2 等于 tablename2.id;第三个值是给定的数字

我已经尝试了几种句法结构和 INSERT INTO SELECT;他们都返回了一条错误消息,我想不出任何其他解决方案。

你能帮帮我吗? 谢谢!

【问题讨论】:

    标签: mysql sql phpmyadmin sql-insert multiple-tables


    【解决方案1】:

    如果表中有多个匹配项,或者根本没有匹配项,您无需指定要执行的操作。但我认为你想要:

    INSERT INTO tablename3 (value1, value2, value3)
        SELECT t1.id, t2.id, ?
        FROM table1 t1 CROSS JOIN
             table2 t2
        WHERE t1.name LIKE '%example%' AND
              t2.name LIKE '%example%';
    

    ? 是为要插入的行提供的编号的参数占位符。

    【讨论】:

    • 表中没有多个匹配项,没有一个值 - 只有一个(表是 30 行甚至更短)
    【解决方案2】:

    我把问题复杂化了,需要修改表之间的逻辑连接。

    解决办法:

    INSERT INTO tablename3 (tablename3,value1, tablename3.value2, tablename3.value3)
    VALUES(
    (SELECT tablename1.id FROM `tablename1` WHERE tablename1.name LIKE "example"),
    (SELECT tablename2.id FROM `tablename2` WHERE tablename2.name LIKE "%example%"), number);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-11
      • 2018-03-23
      • 1970-01-01
      • 2011-06-28
      相关资源
      最近更新 更多