![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 18 Pomógł: 0 Dołączył: 1.02.2010 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Posiadam trzy tabele:
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:
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:
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. Ten post edytował gregiolo 21.04.2010, 16:31:20 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 855 Pomógł: 145 Dołączył: 17.07.2008 Skąd: High Memory Area Ostrzeżenie: (0%) ![]() ![]() |
Kod SELECT plat.*, prod.*, kat.* Trudno żeby zadziałał distinct, skoro wybierasz wszystkie kolumny ze wszystkich tabel. Tzn. działa, na pewno nie masz dwóch takich samych wierszy w wyniku. Może wyjaśnij w ogóle co rozumiesz pod pojęciem 'jeden rezulat bez powtórzeń'. Jak by nie patrzeć są tutaj dwa produkty. Jak chciałbyś je wyświetlić w jednym wierszu? Ok. doczytałem. A jaki wynik dostajesz z pierwszego zapytania? Ten post edytował Mchl 21.04.2010, 16:03:12 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 18 Pomógł: 0 Dołączył: 1.02.2010 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Chciałbym wynik w dwóch wierszach dla dwóch produktów. Tak, aby wszystkie dane były wyszczególnione ze wszystkich tabel. Rezultat oczekiwany napisałem w poście poprzednim, na samym dole po edycji. Dzieki za odpowiedź.
Ten post edytował gregiolo 21.04.2010, 16:17:20 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 855 Pomógł: 145 Dołączył: 17.07.2008 Skąd: High Memory Area Ostrzeżenie: (0%) ![]() ![]() |
Ale jaki wynik dostajesz z tego pierwszego?
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 18 Pomógł: 0 Dołączył: 1.02.2010 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
platnosc | userid | produkt | nazwa | kategoria
1 | 1 | 1 | aaa | kat1 2 | 1 | 1 | aaa | kat1 1 | 1 | 2 | bbb | kat2 2 | 1 | 2 | bbb | kat2 przepraszam, dopisałem płatności, moja tabela w rzeczywistosci jest duzo wieksza i uprosciłem ją. Jak wspomniałem chciałbym aby rezultat był następujący: Bez względu na technike i sposob zapytania. platnosc | userid | produkt | nazwa | kategoria 1 | 1 | 1 | "aaa" | kat1 2 | 1 | 2 | "bbb" | kat2 Ten post edytował gregiolo 21.04.2010, 16:40:06 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 855 Pomógł: 145 Dołączył: 17.07.2008 Skąd: High Memory Area Ostrzeżenie: (0%) ![]() ![]() |
A widzisz. No ale jak masz dwie płatności dla klienta, to na jakiej podstawie baza ma wiedzieć, która płatność, do którego produktu? Powineneś mieć w tabeli płatności odwołanie do produktu.
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 18 Pomógł: 0 Dołączył: 1.02.2010 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Masz racje! To lepsze niż konstruowanie złożonych zapytań.
![]() |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 04:53 |