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

时间:2013-11-17 18:49:13

标签: mysql sql comparison subquery

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

以下是我正在尝试做的一个例子。

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

在这个例子中,我们假设x和y是数值。

感谢您的帮助

2 个答案:

答案 0 :(得分:1)

可以使用INSERT ... SELECT

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

但这种逻辑确实非常奇怪,可能表明设计不佳。

答案 1 :(得分:0)

我想:

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

看看联接操作。 Join 我认为你需要加入table2和table3,然后进行比较和选择。可能会对您的设计有所帮助。