![]() |
![]() |
![]() ![]()
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:
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 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 17.03.2007 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
Kod IP | Produkt1 | Produkt2 | Produkt3 |
---------------------------------------------------- 10.8.3.9 | NP11,NP12 | | NP31,NP32,NP33 | |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 3 Dołączył: 3.03.2009 Ostrzeżenie: (0%) ![]() ![]() |
Kod IP | Produkt1 | Produkt2 | Produkt3 | ---------------------------------------------------- 10.8.3.9 | NP11,NP12 | | NP31,NP32,NP33 | zmienia to troche postac rzeczy i nadal uwazam ze da sie to znacznie optymalniej rozwiazac, ale jezeli jestes uparty (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) do tej postaci to powinno pomoc: Kod SELECT l.localizationIP,
GROUP_CONCAT(DISTINCT p1.productsName) AS "Produkt 1", GROUP_CONCAT(DISTINCT p2.productsName) AS "Produkt 2", GROUP_CONCAT(DISTINCT p3.productsName) AS "Produkt 3" FROM localization l LEFT JOIN products p1 ON p1.productsType = "Produkt1" AND EXISTS (SELECT * FROM localizationproducts lp WHERE lp.localizationID = l.localizationID AND lp.productsID = p1.productsID) LEFT JOIN products p2 ON p2.productsType = "Produkt2" AND EXISTS (SELECT * FROM localizationproducts lp WHERE lp.localizationID = l.localizationID AND lp.productsID = p2.productsID) LEFT JOIN products p3 ON p3.productsType = "Produkt3" AND EXISTS (SELECT * FROM localizationproducts lp WHERE lp.localizationID = l.localizationID AND lp.productsID = p3.productsID) WHERE l.localizationID = 1 GROUP BY l.localizationID |
|
|
![]() ![]() |
![]() |
Aktualny czas: 10.10.2025 - 12:54 |