-Ïîèñê ïî äíåâíèêó

Ïîèñê ñîîáùåíèé â rss_sql_ru_access_programming

 -Ïîäïèñêà ïî e-mail

 

 -Ïîñòîÿííûå ÷èòàòåëè

 -Ñòàòèñòèêà

Ñòàòèñòèêà LiveInternet.ru: ïîêàçàíî êîëè÷åñòâî õèòîâ è ïîñåòèòåëåé
Ñîçäàí: 16.03.2006
Çàïèñåé:
Êîììåíòàðèåâ:
Íàïèñàíî: 4


INSERT INTO ... SELECT

×åòâåðã, 19 Îêòÿáðÿ 2017 ã. 14:13 + â öèòàòíèê
Çäðàâñòâóéòå!

Ïîìîãèòå, ïîæàëóéñòà, ðàçîáðàòüñÿ ñ òàêèì âîïðîñîì:

Èìååòñÿ äâå òàáëèöû, îáçîâåì äëÿ ïðîñòîòû Base è Import.

Çàäà÷à: îáíîâèòü òàáëèöó Base äàííûìè èç òàáëèöû Import, âñòàâëÿòü òîëüêî òå çàïèñè, êîòîðûõ íåò â Base

Ðåàëèçîâàë òàê:
INSERT INTO Base({..ñïèñîê ïîëåé..})
SELECT ({..ñïèñîê ïîëåé..}) FROM Import WHERE NOT EXISTS(
SELECT ({..ñïèñîê ïîëåé..}) FROM Base WHERE Base.field1=Import.field1 And Base.field2=Import.field2 And ... And Base.fieldn=Import.fieldn
))

Ïåðåä âñòàâêîé ïðîâåðÿåòñÿ êîëè÷åñòâî äîáàâëÿåìûõ ñòðîê:

SELECT (Count(*)) FROM Import WHERE NOT EXISTS(
SELECT ({..ñïèñîê ïîëåé..}) FROM Base WHERE Base.field1=Import.field1 And Base.field2=Import.field2 And ... And Base.fieldn=Import.fieldn
))


Âñå âðîäå ðàáîòàåò, íî â íåêîòîðûõ ñëó÷àÿõ êîëè÷åñòâî äîáàâëåííûõ ñòðîê ìåíüøå, ÷åì ïîêàçûâàåò çàïðîñ ñ Count. Ïðè àíàëèçå âûÿñíèëîñü, ÷òî èìåëî ìåñòî áûòü çàäâîåíèå îäèíàêîâûõ ñòðîê â òàáëèöå Import. Íî âåäü ïîäçàïðîñ íå ïðîâåðÿåò çàäâîåíèÿ â òàáëèöå Import, îí ðåàëèçóåò ðàçíîñòü ìåæäó Base è Import? Òàêîé ðåçóëüòàò ìîæíî îæèäàòü òîëüêî â òîì ñëó÷àå, åñëè âíåøíèé ïîäçàïðîñ â çàïðîñå INSER INTO ... SELECT âûïîëíÿåòñÿ íå îäèí ðàç ïåðåä âñòàâêîé, à ïîâòîðÿåòñÿ äëÿ êàæäîé ñòðîêè.
Äîãóãëèòñÿ äî èñòèíû ÿ íå ñìîã, ïîýòîìó ïðîøó îòâåòèòü, åñëè êòî çíàåò: â çàïðîñå
INSERT INTO ... SELECT
ïîäçàïðîñ âûïîëíÿåòñÿ îäèí ðàç äëÿ âñåãî ìàññèâà äàííûõ èëè äëÿ êàæäîé ñòðîêè ïîñëåäîâàòåëüíî â ïðîöåññå âñòàâêè?

http://www.sql.ru/forum/1274552/insert-into-select


 

Äîáàâèòü êîììåíòàðèé:
Òåêñò êîììåíòàðèÿ: ñìàéëèêè

Ïðîâåðêà îðôîãðàôèè: (íàéòè îøèáêè)

Ïðèêðåïèòü êàðòèíêó:

 Ïåðåâîäèòü URL â ññûëêó
 Ïîäïèñàòüñÿ íà êîììåíòàðèè
 Ïîäïèñàòü êàðòèíêó