ďťż
 
problem z zagnieżdżonym zapytaniem sql + VFP ďťż
 
problem z zagnieżdżonym zapytaniem sql + VFP
Zobacz wiadomości
 
Cytat
A gdyby tak się wedrzeć na umysłów górę, / Gdyby stanąć na ludzkich myśli piramidzie, / I przebić czołem przesądów chmurę, / I być najwyższą myślą wcieloną. . . Juliusz Słowacki, Kordian
Indeks BCB i MySQL subiekt gt fototapeta
 
  Witamy

problem z zagnieżdżonym zapytaniem sql + VFP



Andrzej - 23-03-2007 00:02
problem z zagnieżdżonym zapytaniem sql + VFP
  Witam Szanownych grupowiczów .
Problem jest następujący :
Mam dwie tabele , jedna 100 000 tys rekordów , druga 1000 .
Ta druga tabela zawiera słowa kluczowe , które eliminują rekordy z
pierwszej ..
Chodzi o wybranie z tej pierwszej tylko tych rekordów w których w polu
"nazwa" nie występują słowa kluczowe wymienione w tabeli drugiej ( +- 1000
słów ) .
Poradziłem sobie z tym problemem ( w systemie VFP ) w ten sposób że tworze
w pętli sparametryzowane zapytanie i podstawiam do niego wartość z danego
rekordu a z kursora uzyskanego dla każdego słowa kluczowego oddzielnie
pobieram dane do tabeli wynikowej .
Czy można jednak to zrobić jednym dosłownie zapytaniem ?

Póki co zrobiłem to tak :

SELECT tabela2 && mam1000 rekordow ze słowami kluczowymi

SCAN

cslowo = tabela2.slowo_kluczowe

SELECT c.* FROM tabela1 c WHERE NOT cslowo $ c.nazwa INTO CURSOR
wynik_czesciowy

SCAN

INSERT INTO wynik ( id , nazwa ) VALUE (wynik.czesciowy.id ,
wynik_czesciowy.nazwa)

ENDSCAN

ENDSCAN

W tabeli" wynik" mam już odfiltrowane rekordy ale to deczko trwa , może da
się coś pokombinować z podzapytaniem
typu : SELECT id FROM tabela1 WHERE NOT tabela1.id IN ( SELECT d.id FROM
tabela1 d WHERE NOT tabela2.slowo_kluczowe $ d.nazwa ) INTO CURSOR
wynik_koncowy - ale to mi nie działa ,
próbowałem ale jednie pewne rozwiązanie jakie uzyskałem to x oddzielnych
zapytań w pętli .

Pozdr.
Andrzej





nobody - 11-05-2007 12:32

  Użytkownik Andrzej napisał:
> Witam Szanownych grupowiczów .
> Problem jest następujący :
> Mam dwie tabele , jedna 100 000 tys rekordów , druga 1000 .
> Ta druga tabela zawiera słowa kluczowe , które eliminują rekordy z
> pierwszej ..
> Chodzi o wybranie z tej pierwszej tylko tych rekordów w których w polu
> "nazwa" nie występują słowa kluczowe wymienione w tabeli drugiej ( +- 1000
> słów ) .
> Poradziłem sobie z tym problemem ( w systemie VFP ) w ten sposób że tworze
> w pętli sparametryzowane zapytanie i podstawiam do niego wartość z danego
> rekordu a z kursora uzyskanego dla każdego słowa kluczowego oddzielnie
> pobieram dane do tabeli wynikowej .
> Czy można jednak to zrobić jednym dosłownie zapytaniem ?
>
> Póki co zrobiłem to tak :
>
> SELECT tabela2 && mam1000 rekordow ze słowami kluczowymi
>
> SCAN
>
> cslowo = tabela2.slowo_kluczowe
>
> SELECT c.* FROM tabela1 c WHERE NOT cslowo $ c.nazwa INTO CURSOR
> wynik_czesciowy
>
> SCAN
>
> INSERT INTO wynik ( id , nazwa ) VALUE (wynik.czesciowy.id ,
> wynik_czesciowy.nazwa)
>
> ENDSCAN
>
> ENDSCAN
>
> W tabeli" wynik" mam już odfiltrowane rekordy ale to deczko trwa , może da
> się coś pokombinować z podzapytaniem
> typu : SELECT id FROM tabela1 WHERE NOT tabela1.id IN ( SELECT d.id FROM
> tabela1 d WHERE NOT tabela2.slowo_kluczowe $ d.nazwa ) INTO CURSOR
> wynik_koncowy - ale to mi nie działa ,
> próbowałem ale jednie pewne rozwiązanie jakie uzyskałem to x oddzielnych
> zapytań w pętli .

Witam.

Na dwa zapytania to wiem:

SELECT id FROM tabela1 a LEFT JOIN tabela2 b ON .T. ;
INTO CURSOR crTmp ;
WHERE TRIM(b.slowo_kluczowe) $ a.nazwa

SELECT id, nazwa FROM tabela1 WHERE id NOT IN (SELECT id FROM crTmp)

Pozdrawiam Jacek Kałucki




nobody - 11-05-2007 12:32

  Użytkownik nobody napisał:

> SELECT id FROM tabela1 a LEFT JOIN tabela2 b ON .T. ;
> INTO CURSOR crTmp ;
> WHERE TRIM(b.slowo_kluczowe) $ a.nazwa

Przepraszam.

Jeśli pole ma zawierać słowo kluczowe, to wystarczy oczywiście jedno zapytanie:

SELECT a.id, a.nazwa FROM tabela1 a LEFT JOIN tabela2 b ON .T. ;
INTO CURSOR crTmp ;
WHERE TRIM(b.slowo_kluczowe) $ a.nazwa

Pozdrawiam Jacek Kałucki
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    jak to =?ISO-8859-2?Q?zrobi=E6=2E=2E=2E=3F_TSQL_sql_server?==?ISO-8859-2?Q?_?= Jak =?windows-1250?Q?pobra=E6_szacowan=B9_wielko=9C=E6_zbiory_wy nikowego_w_MS?==?windows-1250?Q?_SQL_2005=3F?= =?iso-8859-2?Q?=5BMS_SQL=5D_Czy_mo=BFna_wywo=B3a=E6_funkcje_t ylko_raz_dla?==?iso-8859-2?Q?_ca=B3ego_zbioru_=BCr=F3d=B3owego=3F?= [MSSQL] =?ISO-8859-2?Q?zgodno=B6ci_z_licencjami_Microsoft_?==?ISO-8859-2?Q?SQL_Server?= =?ISO-8859-2?Q?k=B3opot_z_uruchomieniem_MY_SQL_dla_C?==?ISO-8859-2?Q?MS_i_CRM_na_Fedora_Core_3?= Oracle PL/SQL Wstawianie =?ISO-8859-2?Q?wynik=F3w_kolekcji_d?==?ISO-8859-2?Q?o_tabeli?= [MSSQL] ACCESS - SQL =?ISO-8859-2?Q?B=B3ad_w_konwersji_lic?==?ISO-8859-2?Q?zb?= [Oracle PL/SQL] Cursor i zapis =?ISO-8859-2?Q?rekord=F3w_do_?==?ISO-8859-2?Q?kolejnych_plik=F3w?= =?iso-8859-2?Q?=5BMySQL=5D_Co_minimalnie_potrzebne_zeby_mie=E 6_klienta_My?==?iso-8859-2?Q?SQL_na_Linuxie=3F?= [newbie] MS SQL - praca =?ISO-8859-2?Q?jednocze=B6nie_na_2_?==?ISO-8859-2?Q?bazach_=28linkowanie_=3F=29?=
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • morebeer.opx.pl
  • Cytat

    Decede mihi sole - nie zasłaniaj mi słonca.
    Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści
    Hoc fac - tak czyń.
    A tergo - od tyłu; z tyłu.
    I czarne włosy posiwieją. Safona

    Valid HTML 4.01 Transitional

    Free website template provided by freeweblooks.com