![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 10.03.2004 Skąd: Nowy Sącz / Będzin Ostrzeżenie: (0%) ![]() ![]() |
Mam dwie tabele
PRODUCENT id_producent producent ZAKUP id_zakup id_producent id_klient upust Chcialbym dostac tabele w ktorej bylyby kolumny: PRODUCENT.producent, ZAKUP.upust zapytanie: [sql:1:e84bd5ce7f]select producent.producent, zakup.upust from producent, zakup where producent.id_producent=zakup.id_producent AND id_klient=1;[/sql:1:e84bd5ce7f] Zwraca mi taka tabele, ale nie wypisuje producentow dla ktorych dany id_klient nie ma upustów, a ja chcialbym liste wszystkich producentow i upustów jeśli są, a jeśli nie ma to puste pole, czyli coś w tym stulu: ---------- |A|23%| ---------- |B| | ---------- |C|12%| ---------- |
|
|
![]()
Post
#2
|
|
![]() Grupa: Przyjaciele php.pl Postów: 2 712 Pomógł: 23 Dołączył: 27.10.2003 Skąd: z kontowni Ostrzeżenie: (0%) ![]() ![]() |
[sql:1:ab1496c3b4]select producent.producent, zakup.upust from producent LEFT JOIN zakup ON producent.id_producent=zakup.id_producent WHERE id_klient=1;[/sql:1:ab1496c3b4]
-------------------- "Coś się kończy, coś się zaczyna." Andrzej Sapkowski
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 10.03.2004 Skąd: Nowy Sącz / Będzin Ostrzeżenie: (0%) ![]() ![]() |
W odpowiedzi dostaje taką sama tabele jak przy poprzednim zapytaniu tj. tylko liste producentow dla ktorych jest podany upust.
Jesli wpisze to zapytanie bez WHERE id_klient=1 to dostaje liste wszystkich producentow i upustow dla kazdego klienta - lacznie z tymi producentami dla ktorych nie ma upustow. Tylko, ze ja potrzebuje taka liste dla konkretnego id_klient |
|
|
![]()
Post
#4
|
|
![]() Grupa: Przyjaciele php.pl Postów: 2 712 Pomógł: 23 Dołączył: 27.10.2003 Skąd: z kontowni Ostrzeżenie: (0%) ![]() ![]() |
A sprawdz w bazie, może dla id_klient = 1 akurat masz takie a nie inne dane?
-------------------- "Coś się kończy, coś się zaczyna." Andrzej Sapkowski
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 10.03.2004 Skąd: Nowy Sącz / Będzin Ostrzeżenie: (0%) ![]() ![]() |
Dla id_klient=1 mam upusty dla 2 producentow. Ale chcialbym aby po wyslaniu zapytania byla lista wszystkich producentow i upusty wypisane przy tych 2, a przy reszcie puste pola.
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 259 Pomógł: 0 Dołączył: 17.05.2003 Skąd: Nysa Ostrzeżenie: (10%) ![]() ![]() |
No to trzeba by zrobić złączenie obustronne, ale nie pamiętam ja kto szło. W każdym bądź razie musisz użyć jednocześnie left i rigth joina.
P.S nie próbuj też inner joina, bo to raczej nie o to Ci chodzi, no chyba że oczekujesz iloczynu kartezjańskiego ![]() -------------------- ![]() "Nie wiedziałem tylko, że Bóg też był na grzybach, gdy majstrował przy wszechświecie" (Janusz Wisniewski) dev: gazeta.ie |
|
|
![]()
Post
#7
|
|
![]() Grupa: Przyjaciele php.pl Postów: 660 Pomógł: 0 Dołączył: 28.08.2002 Skąd: Starachowice Ostrzeżenie: (0%) ![]() ![]() |
[sql:1:0f17913975]SELECT p.producent, z.upust
FROM producent p LEFT JOIN zakup z ON ( p.id_producent=z.id_producent AND z.id_klient=1 );[/sql:1:0f17913975] Może tak? Nie sprawdzałem tego. |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 10.03.2004 Skąd: Nowy Sącz / Będzin Ostrzeżenie: (0%) ![]() ![]() |
BzikOS - teraz działa dokładnie tak jak sobie bym tego życzył
![]() |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 09:17 |