ďťż
 
[mssql] Dane pośrednie, jak wyjąć/wykorzystać ponownie? jak to zrobić? ďťż
 
[mssql] Dane pośrednie, jak wyjąć/wykorzystać ponownie? jak to zrobić?
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

[mssql] Dane pośrednie, jak wyjąć/wykorzystać ponownie? jak to zrobić?



Sexbox - 20-03-2006 01:30
[mssql] Dane pośrednie, jak wyjąć/wykorzystać ponownie? jak to zrobić?
  Witam

Potrzebuję dwóch grup danych uzyskiwanych z kilku tych samych tabel.
1) CENNIK TOWARÓW złożenie tabel: Cennik: Towary + Ceny + Cechy as f1 +
Cechy as f2
2) WSZYSTKIE CECHY towarów z cenika z 1)

W 1) - CENNIKU wyciągam z tab. Cechy tylko 2 konkretne cechy (Grupę,
Producent)
Natomiast w drugim potrzebuję już same cechy ale WSZYSTKIE tych towaów
uzyskanych
w pierwszym pytaniu.

1) Mój CENNIK to zapytanie:

SELECT
t.ID, t.Nazwa, c.Detal, f1.Value as Grupa, f2.Value as Producent
FROM
Towary as t
JOIN Ceny as c ON t.ID = t.ID
JOIN Cechy as f1 ON t.ID = f1.Towar AND f1.Key = 'Grupa'
LEFT JOIN Cechy as f2 ON t.ID = f2.Towar AND f2.Key = 'Producent'
WHERE f1.Value = 'Drukarki'

2) Moje WSZYSTKIE CECHY dało by zapytanie:

SELECT distinct f3.Key, f3.Value
FROM Cechy as f3
WHERE f3.Towar in (SELECT t.ID FROM [...to co wyżej przy cenniku...])

W sumie te drugie zapytanie mimo mniejszej dla mnie wagi jest bardziej
złożone od pierwszego.

CZY JEST METODA aby dane (towary) uzyskane z pierwszego zapytania
wykorzystać jakoś przy drugim??? BEZ PONOWNEGO ODPYTYWANIA BAZY?

Tab. Cechy ma postać:
Towar|Key|Value
1|Grupa|Drukarki
1|Producent|HP
1|Kolor|Czarny
2|Grupa|Klawiatury
2|Producent|Logitech
3|Ilośc guzików|101

Będę wdzięczny za wszelkie sugestie, baza to MSSQL.





keczerad - 20-03-2006 01:30

  Sexbox napisał(a):

> CZY JEST METODA aby dane (towary) uzyskane z pierwszego zapytania
> wykorzystać jakoś przy drugim??? BEZ PONOWNEGO ODPYTYWANIA BAZY?

z pierwszego zapytanie zrobic widok i odpytywac widok

--

keczerad

http://www.e-mo.com.pl
sklep w (X)HTML




Sexbox - 20-03-2006 01:30

  >> CZY JEST METODA aby dane (towary) uzyskane z pierwszego zapytania
>> wykorzystać jakoś przy drugim??? BEZ PONOWNEGO ODPYTYWANIA BAZY?
>
> z pierwszego zapytanie zrobic widok i odpytywac widok

Tak, wiem. To załatwia ale jedynie w przejrzystości kodu.

A mi chodziło o jego optymalizację pod względem wydajności.
Wydaje mi się, że bez sensu jeszcze raz wyszukiwać ID towarów gdy
w poprzednim zapytaniu już je uzyskaliśmy.

Myślałem też o zbuforowaniu wyników (t.ID) za pomocą tabeli PHP
a potem zbudować odpowiednie zapytanie.

"SELECT distinct f3.Key, f3.Value".
"FROM Cechy as f3".
"WHERE f3.Towar in ('".implode ("', '", $bufor)."')"

Ale to takie chyba nieeleganckie i takie nie w stylu SQLowym.




keczerad - 20-03-2006 01:30

  Sexbox napisał(a):
>>>CZY JEST METODA aby dane (towary) uzyskane z pierwszego zapytania
>>>wykorzystać jakoś przy drugim??? BEZ PONOWNEGO ODPYTYWANIA BAZY?
>>
>>z pierwszego zapytanie zrobic widok i odpytywac widok
>
>
> Tak, wiem. To załatwia ale jedynie w przejrzystości kodu.
>
> A mi chodziło o jego optymalizację pod względem wydajności.
> Wydaje mi się, że bez sensu jeszcze raz wyszukiwać ID towarów gdy
> w poprzednim zapytaniu już je uzyskaliśmy.
>
> Myślałem też o zbuforowaniu wyników (t.ID) za pomocą tabeli PHP
> a potem zbudować odpowiednie zapytanie.
>
> "SELECT distinct f3.Key, f3.Value".
> "FROM Cechy as f3".
> "WHERE f3.Towar in ('".implode ("', '", $bufor)."')"
>
> Ale to takie chyba nieeleganckie i takie nie w stylu SQLowym.
>
>
>

moim zdaniem twoj problem wynika tez z zle zbudowanej tablicy 2, ktora
moim zdniem powinna byc zbudowana na zasadzie drzewa, i to w pierwszej
tablicy powinno byc odwolanie do tablicy 2, przynajnie ja tak mam i sie
latwo dostaje do tego

slave_producent to tak zwana kategoria glowna, do ktorej nalezy prdukt

Produkty :
id| nazwa | slave_producent |
1| Drukarka atrmentowa HP | 3

Kategorie
ID| Nazwa | Rodzic
1| HP | 0
2|Drukarki | 1
3|Atramentowe | 2

i tablica do powiazań poniewaz w branży IT moze sie okazac ze towar moze
nalezyc do kliku kategorii

Powiazanie kategorii, wiele produktow do wielu kategorii

ID|ID_Produktu|ID_Kategorii
1| 1 | 3

i to u mnie sie sprawdza

--

keczerad

http://www.e-mo.com.pl
sklep w (X)HTML





Sexbox - 20-03-2006 01:30

  > slave_producent to tak zwana kategoria glowna, do ktorej nalezy prdukt
>
> Produkty :
> id| nazwa | slave_producent |
> 1| Drukarka atrmentowa HP | 3
>
> Kategorie
> ID| Nazwa | Rodzic
> 1| HP | 0
> 2|Drukarki | 1
> 3|Atramentowe | 2
>
> i tablica do powiazań poniewaz w branży IT moze sie okazac ze towar moze
> nalezyc do kliku kategorii
>
> Powiazanie kategorii, wiele produktow do wielu kategorii
>
> ID|ID_Produktu|ID_Kategorii
> 1| 1 | 3
>
> i to u mnie sie sprawdza

Może i masz rację, ale ja obsługuje bazę którą już zastałem (aplikacji
Enova). Więc muszę obsłużyć to co mam i to jak najsprawniej bo baza
będzie bardzo mocno obciążona.
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    Zdalny =?ISO-8859-2?Q?dost=EAp_do_MSSQL_bez_zarz=B1dzani?==?ISO-8859-2?Q?a?= [MSSQL] =?ISO-8859-2?Q?zgodno=B6ci_z_licencjami_Microsoft_?==?ISO-8859-2?Q?SQL_Server?= [MSSQL 2k] - jak =?ISO-8859-2?Q?pod=B3=B1czy=E6_serwer_na_?==?ISO-8859-2?Q?porcie_innym_ni=BF_1433=3F?= MSSQL Express czy Oracle Express MSSQL 2005 i uruchamianie procedury o =?ISO-8859-2?Q?okre=B6lone?==?ISO-8859-2?Q?j_godzinie?= [MSSQL] ACCESS - SQL =?ISO-8859-2?Q?B=B3ad_w_konwersji_lic?==?ISO-8859-2?Q?zb?= [MSSQL 2000] =?ISO-8859-2?Q?wywo=B3anie_procesu_z_poziomu_?==?ISO-8859-2?Q?job=27a?= [MSSQL 2K] =?ISO-8859-2?Q?Wp=B3yw_ustawie=F1_regionalnych_?==?ISO-8859-2?Q?serwera_na_zapytania?= Pobierananie danych z innej bazy danych w MSSQL Migracja MSSQL 2005 CTP na 2005 Express
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • shutter.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