Mysql 两个子查询之间的 where 子句比较



有没有办法使用 Mysql 比较插入语句中 where 子句中两个子查询的结果?

这是我正在尝试做的事情的一个例子。

insert into table1 (field1, field2) values (....) where (select sum(x) from table2 where ..) <= (select sum(y) from table3 where ..)

在此示例中,我们假设 x 和 y 是数值。

谢谢你的帮助

您可以使用

INSERT ... SELECT

INSERT INTO table1 (field1, field2) SELECT ?, ?
WHERE (SELECT SUM(x) FROM table2 WHERE ..) <= (SELECT SUM(y) FROM table3 WHERE ..)

但这种逻辑看起来确实很奇怪,可能表明设计不佳。

我想:

SELECT @sum_x:=sum(x)FROM table2 WHERE ..
SELECT @sum_y:=sum(x)FROM table3 WHERE ..
INSERT INTO table1 (field1, field2) SELECT *(what do you want) FROM ???? WHERE  @sum_x ??? @sum_y 
// Do not know what are you trying to insert actually and on what condition

查看联接操作。加入我认为您需要将表2和表3连接起来,然后在它之后进行比较和选择。也许它会对您的设计有所帮助。

最新更新