INSERT SELECT в MySQL с лишним статистическим столбцом - PullRequest
2 голосов
/ 17 июня 2009

Я хотел бы сделать вставку 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, хотя, возможно, я мог бы сделать это таким образом, если это необходимо.

Ответы [ 2 ]

1 голос
/ 17 июня 2009

Вы можете переписать запрос как этот

INSERT INTO table1 ( a ) 
SELECT  a  FROM table2
GROUP BY a
HAVING  MAX (b) = 1
1 голос
/ 17 июня 2009
INSERT INTO table1 ( a ) 
SELECT a FROM (SELECT  a, MAX (b) AS maxb FROM table2
GROUP BY a
HAVING maxb = 1) t
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...