Подтвердить что ты не робот

MySql вставляет результаты выбора

Я хотел бы знать, могу ли я запустить такой запрос:

INSERT INTO t2 (a, b) 
VALUES (
 SELECT a, b
 FROM `t1` AS o
 WHERE o.id NOT 
 IN (
  SELECT a
  FROM t2 
  )
)

Идея состоит в том, чтобы заполнить t2 некоторыми данными из t1, но я должен ошибаться в синтаксисе.

Спасибо за помощь

4b9b3361

Ответ 1

Вы не используете ключевое слово VALUES при вставке из инструкции SELECT.

INSERT INTO t2 (a, b) 
 SELECT a, b
 FROM `t1` AS o
 WHERE o.id NOT 
 IN (
  SELECT a
  FROM t2 
  )

Ответ 2

удалите values

как

INSERT INTO t2 (a, b) 
SELECT a, b
FROM `t1` AS o
WHERE o.id NOT 
IN 
(
  SELECT a
  FROM t2 
);

ИЛИ более читаемый формат

INSERT INTO t2 (a, b) 
SELECT o.a, o.b
FROM `t1` AS o
LEFT JOIN t2 ON o.id=t2.a
WHERE t2.a IS NULL;

Ответ 3

Вам не нужны ВАЛЮТЫ в вашем запросе.