Задавайте вопросы, мы ответим
Вы не зашли.
Здравствуйте господа, нуждаюсь в Вашей помощи.
Мне нужно вставить в таблицу loginId, testId из других таблиц.
dat, mark вставляю из файла.
"INSERT INTO results.results(loginId, testId,dat, mark) VALUES ((select idLogin FROM results.logins),(select idTest FROM results.tests),?,?)"- возвращает ошибку Subquery returns more than 1 row
Вставлял LIMIT 1 но выводит всегда первый results.logins, results.tests
Заранее благодарен.
Отредактированно eti666 (15.05.2016 22:42:45)
Неактивен
(select idLogin FROM results.logins) - возвращает несколько строк (столбец)
Неактивен
а можешь направить хотя бы на правильное решение??
Неактивен
если вы используете VALUES, то в каждых круглых скобках после него вы указываете данные одной строки
если вы хотите добавить много строк из других таблиц, то
INSERT INTO results.results(loginId, testId) select idLogin, idTest из нужных вам таблиц ;
но данные из файла вы сюда не прикрутите
Неактивен
точнее если dat, mark константы, то конечно их можно добавить в select
если же они различны для разных строк, то вам сначала нужно будет загрузить их из файла в какую-то табличку и потом делать
INSERT INTO results.results(loginId, testId,dat, mark) select из трех таблиц;
Неактивен
вот есть три таблицы:
1) справочник логинов logins с полями: idLogin (счетчик), name (строковое);
2) справочник тестов tests с полями: idTest (счетчик), name (строковое);
3) оперативно–учетная таблица результатов results с полями: loginId (целое поле для связи), testId (целое поле для связи), dat (дата), mark (целое).
и вот в третью нужно loginId, testId записать с таблиц, а dat, mark с файла загрузить
вот такая запись
cool;oop;2013-03-20;8.5
cool-login
oop- test
2013-03-20 - dat
8.5 - mark
и нужно чтобы в третьей таблице вывелись idLogin, idTest
первую и вторую таблицу заполнил, а как связать их между собой не получается
Неактивен
eti666 написал:
и вот в третью нужно loginId, testId записать с таблиц, а dat, mark с файла загрузить
А если в файле X строк, в таблице логинов Y, а в таблице тестов Z ?
Правильно ли я понимаю, что вам нужно загрузить данные из файла в третью таблицу, но, чтобы вместо строковых значений login и test брались их идентификаторы из таблиц справочников?
Неактивен
Неактивен
vasya написал:
LOAD DATA INFILE 'файл.txt'
INTO TABLE results
FIELDS TERMINATED BY ';'
(@a, @b, dat, mark)
SET loginId = (select idLogin FROM logins where name = @a),
testId = (select idTest FROM tests where name = @b);
http://dev.mysql.com/doc/refman/5.6/en/load-data.html
спс огромное))
Неактивен