Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [sql] Ach te standarty, czy to to samo?
Jabol
post 2.05.2003, 20:18:18
Post #1





Grupa: Przyjaciele php.pl
Postów: 1 467
Pomógł: 13
Dołączył: 22.02.2003

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


Mam takie pytanie. Właśnie kupiłem sobie książkę o SQL'u i czytam o złączeniach.
Skorzystam z tabeli tych tabel do przedstawienia problemu:
Cytat
- klient - [id].[nazwa]
- faktura - [id].[data_wystawienia].[id_klienta]

Mam takie pytanie, czy to są te polecenia robią to samo?
Pierwsze:
Kod
SELECT

    klient.id id,

    klient.name imie,

    faktury.data_wystawienia data

FROM

    klient,

    faktury

WHERE

    klient.id=faktury.id_klienta

Drugie:
Kod
SELECT

    klient.id id,

    klient.name imie,

    faktury.data_wystawienia data

FROM

    klient

LEFT JOIN

    faktura  ON (faktura.id=klient.id)
Co dziwniejsze z mojej wiedzy wynika (tak słyszałem), że JOIN jest tylko pojęciem i że pierwszy przykład jest "bardziej" SQL'owy.
A tak wogóle to mam jeszcze jedno pytanie. Czy chcąc dokonać lewego złączenia zewnętrznego z użyciem słówka JOIN powinienem napisać
Kod
OUTER LEFT JOIN
czy
Kod
LEFT OUTER JOIN
questionmark.gif
Go to the top of the page
+Quote Post
DeyV
post 5.05.2003, 09:14:54
Post #2





Grupa: Zarząd
Postów: 2 277
Pomógł: 6
Dołączył: 27.12.2002
Skąd: Wołów/Wrocław




1. Według manuala WHERE jest równoznaczne z OUTER JOIN
2. Pisz tak, jak działa winksmiley.jpg


--------------------
"Niezależnie od tego, jakie masz osiągnięcia, ktoś Ci pomaga..."
Go to the top of the page
+Quote Post
uboottd
post 6.05.2003, 10:15:39
Post #3





Grupa: Zarejestrowani
Postów: 384
Pomógł: 0
Dołączył: 3.04.2003
Skąd: Chorzow

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


Cytat
Pierwsze:
Kod
SELECT

    klient.id id,

    klient.name imie,

    faktury.data_wystawienia data

FROM

    klient,

    faktury

WHERE    klient.id=faktury.id_klienta


wypisze tylko tych klientow, ktorzy _maja_ jakakolwiek fakture, w wyniku nie pojawia sie zadni klienci nie posiadajacych wpisow w fakturach

Cytat
Drugie:
Kod
SELECT

    klient.id id,

    klient.name imie,

    faktury.data_wystawienia data

FROM

    klient

LEFT JOIN

    faktura  ON (faktura.id=klient.id)


Wypisze _wszystkich_ klientow, dla klientow posiadajacych faktury rowniez dane tych faktur, dla klientow bez faktur wypisze dane klienta i zamiast danych faktur da wartosc NULL
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 Wersja Lo-Fi Aktualny czas: 10.06.2024 - 05:15