mysql表移动插入

mysql表移动插入,mysql,select,insert,transfer,Mysql,Select,Insert,Transfer,这可能很难理解,所以如果需要更好地描述,请告诉我。假设我有3个表tableA、tableB和tableC,语法如下: CREATE TABLE tableA ( data_point_1 VARCHAR(30), data_point_2 VARCHAR(30), data_point_3 VARCHAR(30) ); CREATE TABLE tableB ( bid INTEGER AUTO_INCREMENT, cid INTEGER AUTO_I

这可能很难理解,所以如果需要更好地描述,请告诉我。假设我有3个表tableA、tableB和tableC,语法如下:

CREATE TABLE tableA (
    data_point_1 VARCHAR(30),
    data_point_2 VARCHAR(30),
    data_point_3 VARCHAR(30)
);

CREATE TABLE tableB (
    bid INTEGER AUTO_INCREMENT,
    cid INTEGER AUTO_INCREMENT,
    data_point_1 VARCHAR(30),
);

CREATE TABLE tableC (
    cid INTEGER AUTO_INCREMENT,
    data_point_2 VARCHAR(30),
    data_point_3 VARCHAR(30)
);
现在我要做的是将数据从表A传输到表B和表C。所以本质上我想要的是:

INSERT INTO tableB
SELECT
    data_point_1,
    (SELECT cid FROM tableC WHERE (INSERT INTO tableC SELECT data_point_2, data_point_3 FROM tableA))
FROM tableA
我没有尝试过上面的方法,但我假设这是不可能的,因为INSERT不会返回我需要选择的实际值,但我的问题是如何将a中的数据插入到C中,然后同时从C中获取id和a中的另一个数据点,并将它们都放在B中

我想我可以把它分解成两个insert语句,然后在C上做一个select,其中data\u point\u 2=data\u point\u 2和data\u point\u 3=data\u point\u 3,但我想知道是否有一种方法可以在一个查询中完成?我找不到任何东西,所以我想我应该在这里问一下


再次声明:我不需要两个单独的插入查询。我希望能在1分钟内完成。因为理论上我可能需要进一步抽象它

你可以用以下两种说法来做:

INSERT INTO TableB(data_point_1) SELECT data_point_1 FROM TableA
INSERT INTO TablEc(data_point_2,data_point_3) SELECT data_point_2, data_point_3 FROM TableA

解决方案似乎是没有解决方案=/我想我必须在多个插入中完成。谢谢大家的帮助。

这不起作用,因为它无法将表B指向表C。我们需要确保tableB.cid映射到tableC中的正确行。正如我已经提到的,我已经知道如何在2个插入。。。我想知道这是否可能在一个查询语句中实现。没有人有响应吗?仍然没有找到一种可行的方法来实现这一点……无论如何,您可能会要求MySQL实现不可能的功能。我不确定您关心的是什么,但您可以研究事务是如何工作的。这是一种可以让许多陈述实际上“同时发生”的方式。从表面上看,这可能是不可能的,因为没有人能找到解决方案。谢谢=/