Текущий архив: 2003.09.11;
Скачать: CL | DM;
Вниз
SQL запрос. Найти похожие ветки
← →
denick (2003-08-20 12:32) [0]Помогите пожалуйста построить SQL запрос, что-то не получается.
У меня имеется 2 таблицы, предположем L и P.
В L есть поле период(таблица L заполнена, но поле период пустое), в P тоже поле период.
Каким образом мне поле L.период обновить полем P.период?
← →
Digitman (2003-08-20 12:44) [1]а как у тебя выглядит реляция между L и P ?
← →
denick (2003-08-20 12:48) [2]Не понял?!
← →
gsvserg (2003-08-20 12:55) [3]Если таблицы связаны,то с помощью цикла по таблице Р.
В теле цикла update в таблице L
← →
Digitman (2003-08-20 12:58) [4]о боже ! дай мне терпения объяснить человеку, занявшемуся разработкой приложений реляционной БД, что такое реляция)
ну хорошо, на огурцах)
пусть L содержит 3 записи, а P - 2 записи.
вопрос тебе : из какой записи таблицы P нужно взять зн-е поля период, чтобы записать это значение в поле "период", скажем, 2-й записи таблицы L ? Правила-то хоть какие-то есть , по которым следует ставить соответствие между записями 2-х этих таблиц ?
← →
denick (2003-08-20 13:15) [5]У меня в обеих таблицах одинаковое число записей. Нужно все записи таблицы P поля период, записать в поле период таблицы L.
Повторюсь, что в поле L записи есть, но поле период пустое.
← →
Zacho (2003-08-20 13:26) [6]
> denick (20.08.03 13:15) [5]
Еще раз: из какой именно записи таблицы P брать значение поля период для каждой конкретной записи таблицы L ?
P.S. Тебе явно не хватает знания основ теории РСУБД.
← →
Digitman (2003-08-20 13:33) [7]
> denick
мало ли что оно "одинаковое" ! Ядро СУБД при разборе и исполнении SQL-запроса должно знать, как поставить соответствие между записями.
← →
denick (2003-08-20 13:34) [8]Есть уникальное поле индекс, где L.индекс = P.индекс
← →
Zacho (2003-08-20 13:35) [9]
> denick (20.08.03 13:34) [8]
Тогда: UPDATE L SET период=(SELECT период FROM P WHERE L.индекс = P.индекс)
← →
Digitman (2003-08-20 13:45) [10]
> denick (20.08.03 13:34) [8]
> Есть уникальное поле индекс, где L.индекс = P.индекс
это и есть реляция
см.
> Zacho © (20.08.03 13:35) [9]
здесь ты говоришь системе
для каждой записи в таблице L установить зн-е ее поля L.период, равное тому, что будет затребовано соответствующим запросом к таблице P и вернет единственную запись с условием : значение уникального поля P.индекс равно текущему значению уник.поля L.индекс
← →
denick (2003-08-20 14:01) [11]Это-то, всё ясно. Только как это объяснить Access`у? Он ругается и говорит что "Слишком мало параметров. Требуется 1."
← →
denick (2003-08-20 14:10) [12]Всё нормально за исключением, того что Access пишет "В операции должен использоваться обновляемый запрос". Что это значит, может кто-нибудь подскажет?
Хотя Sql запрос такой:
UPDATE Издания_рп SET Период = (
SELECT 12
FROM PUBLIC
WHERE Издания_рп.[Индекс издания] = Public.[1]
);
← →
Digitman (2003-08-20 14:18) [13]UPDATE L INNER JOIN P ON L.Индекс = P.Индекс SET L.Период = P.Период;
Страницы: 1 вся ветка
Текущий архив: 2003.09.11;
Скачать: CL | DM;
Память: 0.47 MB
Время: 0.008 c