有没有办法使用Mysql来比较insert语句中where子句中两个子查询的结果?
以下是我正在尝试做的一个例子。
insert into table1 (field1, field2) values (....) where (select sum(x) from table2 where ..) <= (select sum(y) from table3 where ..)
在这个例子中,我们假设x和y是数值。
感谢您的帮助
答案 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,然后进行比较和选择。可能会对您的设计有所帮助。