Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Łączenie dwóch tabel trzecią., Problem z odpowiednim wyciąganiem danych...
Dexiu
post
Post #1





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 17.03.2007
Skąd: Katowice

Ostrzeżenie: (0%)
-----


Mam dwie tabele połączone trzecią (połączenie n:m).

Tablica: localization; Kolumny: localizationID [PK], localizationIP, localizationName, localizationComment

Tablica: products; Kolumny: productsID [PK], productsName, productsVersion, productsType

Tablica łącząca: localizationProducts; Kolumny: localizationID [PK], [i]productsID [PK]

Tablica products zawiera produkty pogrupowane na 3 typy (productsType).
Wyciągam dane localizationIP, productsName
i teraz pytanie jak wyciągnąć powyższe dane z mała zmianą.
Zamiast productsName chciałbym wyciągnąć trzy kolumny dla poszczególnych productsType.
Aktualnie mam zapytanie:
  1. SELECT l.localizationIP AS IP, IF (p.productsType='Produkt 1', p.productsName, '') AS 'Produkt 1',
  2. IF (p.productsType='Produkt 2', p.productsName, '') AS 'Produkt 2',
  3. IF (p.productsType='Produkt 3', p.productsName, '') AS 'Produkt 3'
  4. FROM localization l
  5. LEFT JOIN localizationproducts lp ON lp.localizationID=l.localizationID
  6. LEFT JOIN products p ON lp.productsID=p.productsID
  7. WHERE l.localizationID=1
  8. GROUP BY l.localizationID, p.productsType;

co daje wynik:
Kod
IP          Produkt1  Produkt2  Produkt3
10.8.3.9                        Nazwa3    
10.8.3.9              Nazwa2        
10.8.3.9    Nazwa1

Jak usunę p.productsType z GROUP BY
mam wynik:
Kod
IP          Produkt1  Produkt2  Produkt3
10.8.3.9    Nazwa1

Efekt jaki chciałbym osiągnąć to:
Kod
IP          Produkt1  Produkt2  Produkt3
10.8.3.9    Nazwa1    Nazwa2    Nazwa3


POMOCY!!! (IMG:http://forum.php.pl/style_emoticons/default/sadsmiley02.gif)

Ten post edytował Dexiu 4.03.2009, 11:43:20
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
mongea
post
Post #2





Grupa: Zarejestrowani
Postów: 8
Pomógł: 3
Dołączył: 3.03.2009

Ostrzeżenie: (0%)
-----


hi

wynikiem polaczenia jest iloczyn kartezjanski, dostajesz wiec zbior wynikowych wierszy
ty probujesz na sile te wiersze strescic do jednego wiersza - musisz wiec zadac takie zapytanie ktore w wyniku da jedna krotke - da sie to zrobic rozbudowujac (i przy okazji gmatwajac zapytanie)
ale czy nie lepiej sposob prezentacji pozostawic juz php ?

kolejna rzecz: jak chcesz miec prezentowane wyniki gdy dla danej lokalizacji bedzie np. 50 produktow typu Produkt 3, a z pozostalych typow nie bedzie zadnego produktu ?
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 2.10.2025 - 22:38