2015-12-27 7 views
1

Я пытаюсь вставить значения в MySQL 5.1 таблицы с помощью следующего оператораMySQL вставить значение (выберите)

INSERT INTO `bp_measurements` 
(`id_patient`, `time`, `location`, `systolic`, `diastolic`) 
VALUES (
'2', 
'2015-12-26 13:19:35', 
(SELECT `id` FROM `gps_locations` WHERE `lon` = 20.40930 AND `lat` = 48.94990`), 
'110', 
'70' 
) 

Но я получаю ошибку синтаксиса MySQL версию сервера для корректного синтаксиса использовать вблизи «') , '110', '70') 'в строке 2 (извините за то, что не поместил это в код, но он не работает из-за использования апострофов). Что я делаю не так? Я пробовал некоторые другие решения от StackOverflow, но я не могу заставить их работать

Спасибо вперед

EDIT: это правильная версия моего заявления

INSERT INTO `bp_measurements` 
(`id_patient`, `time`, `location`, `systolic`, `diastolic`) 
VALUES (
'2', 
'2015-12-26 13:19:35', 
(SELECT `id` FROM `gps_locations` WHERE `lon` = 20.40930 AND `lat` = 48.94990), 
'110', 
'70' 
) 

оба эти и принял ответ поэтому не стесняйтесь использовать любой из них

ответ

2

Попробуйте это syntax

Добавьте постоянных значений к списку select столбца в порядке списка столбцов вставки

INSERT INTO `bp_measurements` 
      (`id_patient`, 
      `time`, 
      `location`, 
      `systolic`, 
      `diastolic`) 
SELECT '2', 
     '2015-12-26 13:19:35', 
     `id`, 
     '110', 
     '70' 
FROM `gps_locations` 
WHERE `lon` = 20.40930 
     AND `lat` = 48.94990 
+0

благодаря она работает – horin

+0

actualy даже мое решение работает я просто забудьте удалить один апостроф, я тоже опубликую правильную версию. – horin

+0

@horin - если ваш подзапрос не возвращает более одной строки. –

0

Модифицированных Вставить заявление как:

INSERT INTO bp_measurements(id_patient, time, location, systolic, diastolic) (SELECT '2' AS id_patient,'2015-12-26 13:19:35' AS time,id AS location,'110' AS systolic,'70' AS diastolic FROM gps_locations WHERE lon = 20.40930 AND lat = 48.94990) 
Смежные вопросы