platnosci:
platnosc | userid | kwota
1 | 1 | 10
2 | 1 | 20
produkty:
produkt | userid | nazwa
1 | 1 | "aaa"
2 | 1 | "bbb"
kategorie:
produkt | kategoria
1 | "kat1"
2 | "kat2"
Mam dane jedynie [userid].
Chciałbym utworzyć zapytanie, które przedstawi wszystkie powyższe dane jako jeden rezultat bez powtórzeń. Kombinowałem na dwa sposoby:
SELECT plat.*, prod.*, kat.* FROM platnosci plat JOIN produkty prod ON plat.userid = prod.userid JOIN kategorie kat ON prod.produkt = kat.produkt WHERE plat.userid = 1 AND prod.userid = 1;
Tutaj poprawiłem na: SELECT plat.*
i również nie zadziałało, podobnie jak DISTINCT plat.*
To zapytanie działa ale duplikuje wiersze. Distinct też nie działa.
Inna możliwość to:
SELECT plat.*, prod.produkt FROM platnosci plat, produkty prod WHERE plat.userid IN ( SELECT DISTINCT prod.produkt FROM produkty prod WHERE prod.userid = 1) GROUP BY prod.produkt;
To działa niemal. Problem w tym, że nie wiem jak wewnątrz zrobić JOIN i na zewnątrz pobrać dane z kategorii oraz z produktu. Udalo mi sie pobrac tylko prod.produkt, jak próbuje inne opcje to nie działa.
Chciałbym aby rezultat był następujący:
platnosc | userid | produkt | nazwa | kategoria
1 | 1 | 1 | "aaa" | kat1
2 | 1 | 2 | "bbb" | kat2
Moze ktos ma lepszy pomysł.
Z góry dziekuje.