Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MySQL > Помогите одуплить запрос!


Автор: PSYx 16.11.2005, 12:17
Не пойму по4ему запрос не одупляется! Вроде и построение и синтаксис- верные, а он ни в какую!
Insert Into Head (DocNum, DocSer, RegDate, Regn, Fadm, Fory, Allot, Beat, SaleScene, SaleForm, SaleMode, CustomId, CustomName, CustomNation, WBTYPE, WBNum, WBSer, WBRegDate, ProVAT, CheckDate)
Select Temphead.DocNum, Temphead.DocSer, RegDate, Regn, Fadm, Fory, Allot, Beat, SaleScene, SaleForm, SaleMode, CustomId, CustomName, CustomNation, WBTYPE, WBNum, WBSer, WBRegDate, ProVAT, Temphead.CheckDate
From Temphead, Tempbody
Where ((Temphead.docSer = Tempbody.docSer) and (Temphead.docnum = Tempbody.docnum));
Если кто заметил ошибу- помогите! (Диагноз- запрос просто виснет!)

Автор: HalkaR 16.11.2005, 12:27
Переделай так - попробуй
Код

Insert Into Head (DocNum, DocSer, RegDate, Regn, Fadm, Fory, Allot, Beat, SaleScene, SaleForm, SaleMode, CustomId, CustomName, CustomNation, WBTYPE, WBNum, WBSer, WBRegDate, ProVAT, CheckDate)
Select Temphead.DocNum, Temphead.DocSer, RegDate, Regn, Fadm, Fory, Allot, Beat, SaleScene, SaleForm, SaleMode, CustomId, CustomName, CustomNation, WBTYPE, WBNum, WBSer, WBRegDate, ProVAT, Temphead.CheckDate
FROM Temphead AS th INNER JOIN  Tempbody as tb
ON th.docSer=tb.docSer AND th.docnum=tb.docnum

похоже таблицы достаточно большие и декартово произведение получется огромное.

Автор: Ignat 16.11.2005, 12:46
PSYx, огромная просьба, используйте понятный язык для вопросов.

Автор: PSYx 16.11.2005, 13:10
Цитата(HalkaR @ 16.11.2005, 12:27)
похоже таблицы достаточно большие и декартово произведение получется огромное.

Нет я специально уменьшил их до 10 записей(проверки ради)- но, как видишь, ни4его не вышло.
Хорошо стоит попробовать, спасибо.
Добавлено @ 13:11
2Ignat
Сори! слу4айно вышло!

Автор: Ignat 16.11.2005, 13:12
SELECT, используемый в INSERT'е предварительно посмотри EXPLAIN'ом.

Автор: PSYx 16.11.2005, 13:18
Цитата(Ignat @ 16.11.2005, 13:12)
SELECT, используемый в INSERT'е предварительно посмотри EXPLAIN'ом.

Тут проблемка одна- я в делфях работаю, с компонентом MySQL поэтому не смогу просмотреть от4ёт по селекту((

Автор: Ignat 16.11.2005, 13:22
Цитата(PSYx @ 16.11.2005, 13:18)
Тут проблемка одна- я в делфях работаю, с компонентом MySQL поэтому не смогу просмотреть от4ёт по селекту((

Вот вам здрасьте!
В комплекте с MySQL идет файлик mysql.exe(если речь о винде) Запускаем:
mysql.exe --host=your_host --user=your_user -p
Пишем:
Код

USE `your_database`;
EXPLAIN SELECT .....;

Автор: PSYx 16.11.2005, 13:27
IgnatНе всё спасибо, уже не надо!
HalkaR Спасибо, не знаю 4то там не так было но с джоином всё как надо вышло! Спасибо.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)