有没有办法使用 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连接起来,然后在它之后进行比较和选择。也许它会对您的设计有所帮助。