Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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
1-33642
Islander
2003-08-30 21:27
2003.09.11
Как грамотно уничтожить форму, чтобы освободилась память?


1-33679
Vova
2003-08-29 14:12
2003.09.11
Как сделать строки ComboBox-а разноцветными?


6-33707
young_shrek
2003-07-09 13:30
2003.09.11
HTTP error message: Interface not supported


4-33838
Jungle
2003-07-13 01:12
2003.09.11
Как заблокировать доступ к диску (логическому или физическому)


9-33416
Omar2002
2003-03-06 16:33
2003.09.11
DelphiX





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский