2009-06-16 10 views
2

私はselectステートメントが "HAVING"節で使用する集約カラムを持っていて、実際にそれらのカラムを挿入しないようにしたいと思っています。簡単な例:余分な集約カラムを持つMySQLでのINSERT SELECT

INSERT INTO table1 (a) 
SELECT a, MAX (b) AS maxb FROM table2 
GROUP BY a 
HAVING maxb = 1 

もちろん、INSERTとSELECTには異なる数の列があるため、これは機能しません。この仕事をする簡単な方法がありますか?私は、INSERTフィールドリストに何らかの種類のヌルカラムを定義できることを期待していました。 SELECTステートメントでサブクエリを避けることを望んでいましたが、必要に応じてそのようにすることもできます。

答えて

1
INSERT INTO table1 (a) 
SELECT a FROM (SELECT a, MAX (b) AS maxb FROM table2 
GROUP BY a 
HAVING maxb = 1) t 
1

あなたはこの

INSERT INTO table1 (a) 
SELECT a FROM table2 
GROUP BY a 
HAVING MAX (b) = 1 
ようなクエリを書き直すことができます
関連する問題