![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 1 Pomógł: 0 Dołączył: 19.07.2004 Ostrzeżenie: (0%) ![]() ![]() |
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. |
|
|
![]() |
![]() ![]()
Post
#2
|
|
![]() Administrator serwera Grupa: Developerzy Postów: 521 Pomógł: 13 Dołączył: 2.04.2004 Skąd: 52°24' N 16°56' E Ostrzeżenie: (0%) ![]() ![]() |
Wrzuć kody w BBCode i napisz strukturę każdej tabeli z opisem co dane pole trzyma
![]() -------------------- Środowisko: Gentoo 2008.0 | Apache | PHP5 | PostgreSQL | MySQL | Postfix
Workstation: Gentoo 2008.0 | Firefox Thomas Alva Edison: "Aby coś wynaleźć wystarczy odrobina wyobraźni i sterta złomu ..." Odpowiedź na każde pytanie typu "Jak ...": "Nie da się, to nie PostgreSQL" |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 19:57 |