вставить запрос на MySQL - ГДЕ НЕ СУЩЕСТВУЕТ

0

Я получаю следующую ошибку:

1064 - У вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с "WHERE NOT EXISTS" (SELECT * FROM training2subjects WHERE trainingID = 3 AND subj "в строке 1

когда я обедаю этот запрос на mysql -

INSERT INTO training2subjects ( trainingID, subjectID ) 
VALUES ( 3, 5 ) 
WHERE NOT EXISTS ( 
        SELECT * 
        FROM training2subjects 
        WHERE trainingID = 3 
        AND subjectID = 5 
        LIMIT 0,1 
    )

Когда я запускаю подзапрос, он отлично работает

SELECT * 
        FROM training2subjects 
        WHERE trainingID = 3 
        AND subjectID = 5 
        LIMIT 0,1

Я хочу вставить только в том случае, если одни и те же данные еще не существуют

Теги:

1 ответ

0
Лучший ответ

Вам нужно использовать INSERT INTO - SELECT:

INSERT INTO training2subjects ( trainingID, subjectID ) 
SELECT 3, 5 
WHERE NOT EXISTS (SELECT * 
                  FROM training2subjects 
                  WHERE trainingID = 3 AND subjectID = 5);

Демоверсия DBFiddle

  • 0
    Здравствуй. нет, ошибка все еще - #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE NOT EXISTS (SELECT * FROM training2subjects ' at line 3
  • 0
    @Roi Странно, работает нормально. Демо включено

Ещё вопросы

Сообщество Overcoder
Наверх
Меню