Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Łączenie tabel left join, Problem
Archon_1
post
Post #1





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 17.04.2005

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


Witam mam taki problem. Kiedy wykonuje polecenie sql w phpmyadminie o takiej treści
Kod
select klienci.klientid,  klienci.nazwisko
from klienci left join zamowienia
using(klientid)
where zamowienia.zamowienieid is null;

To nie pojawiaja mi sie żadne rekordy. Dlaczego?? Czy trzeba coś poprzestawiać w konfiguracji??
Go to the top of the page
+Quote Post
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




najwyrażniej warunek nie jest spelniony dla zadnego rekordy, czyli każde zamowienie ma przypisanego klienta


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Archon_1
post
Post #3





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 17.04.2005

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


Warunek jest spełniony bo jest to przykład z książki php i MySQl Tworzenie stron www
Go to the top of the page
+Quote Post
SongoQ
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


A gdzie sie podzialo zlaczenie?


--------------------
Go to the top of the page
+Quote Post
popbart
post
Post #5





Grupa: Zarejestrowani
Postów: 255
Pomógł: 0
Dołączył: 22.04.2004
Skąd: Żoliborz

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


@SongoQ USING jest złączeniem
@nospor raczej każdy klient ma zamówienie smile.gif
@Archon_1 dodaj nowego klienta i wykonaj jescze raz selecta


--------------------
Visual Basic - kto by pomyślał :)
Go to the top of the page
+Quote Post
nospor
post
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




@popbart nie, raczej zamowienie ma klienta. KLienci bez zamowien mogą sie obyć, ale zamowienie bez klienta to raczej nie. Samo się nie zamówi

@Archon_1
Cytat
Warunek jest spełniony bo jest to przykład z książki php i MySQl Tworzenie stron www
A baze masz taką samą jak oni? he? Ja nie negowalem ze masz zle zapytanie (ono skladniowo jest ok) ino że twoja baza nie spelnia jego warunków


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
popbart
post
Post #7





Grupa: Zarejestrowani
Postów: 255
Pomógł: 0
Dołączył: 22.04.2004
Skąd: Żoliborz

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


@nospor
Zapytanie
  1. SELECT klienci.klientid, klienci.nazwisko
  2. FROM klienci LEFT JOIN zamowienia USING (klientid)
  3. WHERE zamowienia.zamowienieid IS NULL

powinno zwrócić wszystkich klientów którzy nie mają zamówień.
Jeżeli nic nie zwraca, to znaczy że albo nie ma żadnych klientów, albo każdy ma choć jedno zamówienie.

Ten post edytował popbart 1.07.2005, 18:29:27


--------------------
Visual Basic - kto by pomyślał :)
Go to the top of the page
+Quote Post
Sh4dow
post
Post #8





Grupa: Zarejestrowani
Postów: 569
Pomógł: 0
Dołączył: 17.08.2003
Skąd: Dąbrowa Górnicza

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


Albo mnie sie wydaje albo czegos mi tutaj brakuje ?
No bo wybierasz wszystkich klientow, gdzie ich zamowienia sa rowne NULL. Ale nie masz miedzy tablicami polaczenia chyba? bo ten using jakos ni jak ma sie to tego.
  1. SELECT k.klientid, k.nazwisko
  2. FROM klienci AS k
  3. LEFT JOIN zamowienia AS z ON z.klientid = k.klientid
  4. WHERE z.zamowienieid IS NULL


chociaz nie zawachal bym sie tego zrobic bez JOIN'a

  1. SELECT k.klientid, k.nazwisko
  2. FROM klienci AS k, zamowienia AS z
  3. WHERE z.klientid = k.klientid AND z.zamowienieid IS NULL


mam jedynie nadzieje ze przewidzialem jak jest zaprojektowana ta baza. aaevil.gif

=:]P


--------------------
Warsztat: Linux: PHP, MySQL, Apache, NetBeans, C++, Qt-Creator
Użytkownik, słowo którego specjaliści IT używają, gdy chcą powiedzieć idiota
Zarządzaj swoim budżetem domowym
Go to the top of the page
+Quote Post
SongoQ
post
Post #9





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


Cytat
Ale nie masz miedzy tablicami polaczenia chyba? bo ten using jakos ni jak ma sie to tego.

No wlasie USING tak laczy.


--------------------
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 19.08.2025 - 17:36