Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.09.11;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.008 c
1-33626
Eagle Owl
2003-08-31 21:06
2003.09.11
GIF


3-33439
P0tia
2003-08-21 19:05
2003.09.11
Про excel


7-33823
Zilog
2003-06-16 14:31
2003.09.11
Как можно организовать передачу данных по паре?


14-33779
Marser
2003-08-23 02:20
2003.09.11
Именинники 23 августа


14-33748
Webson
2003-08-17 22:38
2003.09.11
HHP и HHC





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский