Mysql 插入Select并从其他表中进行乘法运算

Mysql 插入Select并从其他表中进行乘法运算,mysql,Mysql,我想将表2中的数据与表3中的值相乘,从表2中向表1插入数据 表1和表2具有相同的列id,rangking、status、access、facility、popularity id是自动递增的 表2的数据如下: id | rangking |状态|通道|设施|人气 1 | 9 | 4 | 2 | 4 | 6 2 | 4 | 5 | 1 | 2 | 7 3 | 5 | 8 | 5 | 3 | 4 表3的数据如下: id |值 c2 | 0.2 c3 | 0.5 c4 | 0.1 c5 | 0.3 从

我想将表2中的数据与表3中的值相乘,从表2中向表1插入数据

表1和表2具有相同的列id,rangking、status、access、facility、popularity id是自动递增的 表2的数据如下:

id | rangking |状态|通道|设施|人气

1 | 9 | 4 | 2 | 4 | 6

2 | 4 | 5 | 1 | 2 | 7

3 | 5 | 8 | 5 | 3 | 4

表3的数据如下:

id |值 c2 | 0.2 c3 | 0.5 c4 | 0.1 c5 | 0.3

从该查询中,我发现了错误,是否有帮助?

您选择一个名为value的列,然后您应该访问$c2中的值,而不需要在select中使用别名来插入/选择。这些值是按位置分配的

insert into table1 (a2,a3,a4,a5) 
SELECT (a2*$c2['value'] as A2,a3,a4,a5) FROM table2 


您可以使用连接保存多个查询:

INSERT INTO table1 (a2, a3, a4, a5)
SELECT table1.a2 * table3.value AS a2, table1.a3, table1.a4, table1.a5
FROM table1
INNER JOIN table3
  ON table3.id = :id
:id是命名参数,您可以将其绑定到“c2”的值或手动插入,具体取决于它是否为用户输入

我在ON中使用了table3.id=:id,因为这肯定会将结果绑定到选定的行,但是如果您有一个适当的关联/外键,您会希望使用它


将来,将您的列命名为有意义的列会有所帮助,而不仅仅是a1、a2等。

仍然有comment=mysqli\u error只需要1个参数,0,因为此错误与我的答案无关。。。我只发布了查询sql代码,没有发布mysqli_查询..代码。。您指的是哪个查询??不带..的SELECT命令。。我把自己弄得一团糟。谢谢你的帮助!实际上它比a1,a2更复杂。我只是让它变得简单,让其他人容易理解其他情况。我会把所有的像a2*c2,a3*c3,a4*c4,a5*c5一样的东西进行乘法,但是没有一个相同的id来加入它。即使是在发布问题时。已对其进行了编辑。我不能使用JOIN,因为table3.id与table2.id没有什么相同之处。您可以在这里使用JOIN,它与大多数连接略有不同,因为您基本上只是将单个行连接到表中。
$sqlTest = mysqli_query ($koneksi, "insert into table1 (a2,a3,a4,a5) 
    SELECT (a2*$c2['value'] as A2,a3,a4,a5) FROM table2") or die(mysqli_error($koneksi));
INSERT INTO table1 (a2, a3, a4, a5)
SELECT table1.a2 * table3.value AS a2, table1.a3, table1.a4, table1.a5
FROM table1
INNER JOIN table3
  ON table3.id = :id