我想做一个insert select,其中select语句有聚合列供“HAVING”子句使用,但实际上我并不希望插入这些列。一个简单的例子:
INSERT INTO table1 ( a )
SELECT a, MAX (b) AS maxb FROM table2
GROUP BY a
HAVING maxb = 1
当然,这不起作用,因为INSERT和SELECT中有不同数量的列。是否有简单的方法使这项工作?我希望我可以在INSERT字段列表中定义某种类型的空列,或者其他东西。我希望在SELECT语句中避免使用子查询,尽管如果有必要我可以这样做。
答案 0 :(得分:1)
INSERT INTO table1 ( a )
SELECT a FROM (SELECT a, MAX (b) AS maxb FROM table2
GROUP BY a
HAVING maxb = 1) t
答案 1 :(得分:1)
您可以像这样重写查询
INSERT INTO table1 ( a )
SELECT a FROM table2
GROUP BY a
HAVING MAX (b) = 1