Можно ли использовать подзапрос внутри инструкции INSERT?

Мне нужно вставить строку в таблицу, причем одно значение поля вычисляется из другой таблицы. Вместо того, чтобы делать два запроса и рисковать условиями гонки, я думал, что было бы лучше сделать все это в одном заявлении.

INSERT INTO `myTable` (`someData`, `averageAtThisTime`)
VALUES (
    "some stuff",
    SELECT AVG(`myField`) FROM `myOtherTable`
)

... но это не работает. Есть ли способ, которым я могу достичь этого в одном заявлении? Если нет, то какова ваша рекомендация?

Ответ 1

INSERT INTO `myTable` (`someData`, `averageAtThisTime`)
select "some stuff", AVG(`myField`) 
FROM `myOtherTable`

Ответ 2

Ваш подзапрос будет заключен в круглые скобки. Этот код должен работать:

INSERT INTO `myTable` (`someData`, `averageAtThisTime`)
VALUES (
"some stuff",
(SELECT AVG(`myField`) FROM `myOtherTable`)
);