Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MYSQL]Pomoc w zrozumieniu LEFT JOIN
_Martin_
post
Post #1





Grupa: Zarejestrowani
Postów: 352
Pomógł: 9
Dołączył: 16.09.2005
Skąd: Rybnik

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


Witam


Mam taki problemik..Ze zrozumieniem tej funkcji MySQL. Wertowałem parę kursów ale nigdzie nie jest soczyście opisane co i jak!

Może wytłumaczycie mi to na przykładzie!
Podam 2 przykładowe tabele!

Nazwa tabeli: Imie
-ID---id_uz---imie------
-1 ---1 ---maciek---
-2 ---8 ---mariusz--
-3 ---10 ---andrzej---
-4 ---12 ---paweł-----
-5 ---15 ---adam-----


Nazwa tabeli Nazwisko
-ID---id_uz---nazwisko----
-1 ---1 ---Żurawski---
-2 ---8 ---Królewiak---
-3 ---10 ---Pawlak-------
-4 ---12 ---Zalewski--------
-5 ---15 ---Rutkowski--------

Ok mamy w tabele przyjmując iż id auto_increment
Teraz chciał bym dopasować imie i nazwisko o wspólnym id np:

  1. SELECT
  2. n.id_uz, n.nazwisko, i.id_uz, i.imie
  3. FROM nazwisko AS n,
  4. imie AS i
  5. .....


No i co dalej panowie żeby po wypisaniu np jakiejś zmiennej np
$user[1]; wyświetliło mi: Maciek Żurawski?

Ktoś może ma pomysł (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Pozdrawiam serdecznie!

Ten post edytował _Martin_ 27.02.2009, 20:20:59
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
kefirek
post
Post #2





Grupa: Zarejestrowani
Postów: 781
Pomógł: 256
Dołączył: 29.06.2008

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


Trochę zły przykład podąłeś wytłumaczę ci na moim

Załóżmy że masz tabele
Użytkownicy i masz w niej takie kolumny

ID | NAZWA |
1 | beniu |
2 | ziomek |

I masz drugą tabele np. z zakupami jakie dokonali użytkownicy

I masz w niej takie kolumny

ID | id_uzytkonika | data_dokonaniu_zakpów
1 | 1 |2007-03-03
2 | 1 |2007-03-03
3 | 2 |2007-03-03

W obydwu tabelach ID jest unikalne i się nie powtarza
I powiedzmy że chcesz zrobić takie zapytanie aby uzyskać taki wynik.

1 | beniu |2007-03-03
2 | beniu |2007-03-03
3 | ziomek |2007-03-03

Czyli zamiast id użytkownika chcesz mieć jego nazwę czyli dołączasz na podstawie id_uzytkonika tabele użytkownicy gdzie id_uzytkonika=ID

Czyli robisz takie zapytanie

  1. SELECT z.*, u. ID, u. NAZWA FROM zamowienia z
  2. LEFT JOIN uzytkownicy u ON (z.id_uzytkonika= u.ID)


Do tabel stosujesz aliasy w celu ich odróżnienia czyli te literki
Stosujesz je po nazwie tabeli
z.*, to oznacza ze zwróci ci wszystkie kolumny z tabeli zamówienia
a to u.ID, u. NAZWA zwróci ci tylko id i nazwę z tabeli użytkownicy możesz oczywiście dać u.* i zwróci wszystkie dane użytkownika.
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 5.10.2025 - 02:53