Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL] Znowu łączenie tabel
bostaf
post
Post #1





Grupa: Zarejestrowani
Postów: 374
Pomógł: 79
Dołączył: 6.04.2010
Skąd: Ostrów Wielkopolski

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


Witam,

Proszę o pomoc w skonstruowaniu zapytania.
Mam dwie tabele: tab1, tab2.

tab1:
Kod
id| opis
--+--------
1 | aa
2 | bb
3 | cc


tab2:
Kod
id|id_tab1| nazwa
--+-------+--------
1 |   1   | eee
2 |   3   | fff
3 |   3   | ggg
4 |   3   | hhh
5 |   1   | iii
6 |   1   | jjj
8 |   3   | kkk


Chcę uzyskać takie zestawienie:
Kod
opis | nazwa
-----+-------
aa   | jjj
bb   | NULL
cc   | kkk


czyli, listing wszystkich rekordów z tabeli tab1, uzupełniony o pole `nazwa` z tabeli tab2. Pole `nazwa` ma być pobrane dla rekordu o maksymalnym id.
To pewnie banalnie proste a ja mam jakiś zator myślowy - zdarza się co jakiś czas (IMG:style_emoticons/default/smile.gif)

Dziękuję za pomoc.

Ten post edytował bostaf 25.05.2010, 09:40:02
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
wookieb
post
Post #2





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Człowieku TEMAT
Człowieku z kursu uciekł?
Człowieku http://dev.mysql.com/doc/refman/5.0/en/join.html
Człowieku google -> mysql kurs
Go to the top of the page
+Quote Post
bostaf
post
Post #3





Grupa: Zarejestrowani
Postów: 374
Pomógł: 79
Dołączył: 6.04.2010
Skąd: Ostrów Wielkopolski

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


Cytat(wookieb @ 25.05.2010, 10:38:15 ) *
Człowieku TEMAT


Już jest (IMG:style_emoticons/default/smile.gif)

Cytat(wookieb @ 25.05.2010, 10:38:15 ) *
Człowieku z kursu uciekł?
Człowieku http://dev.mysql.com/doc/refman/5.0/en/join.html
Człowieku google -> mysql kurs


Taaaaa. Mam najnowszego manuala na kompie, z google też umiem korzystać. Zanim napisałem prośbę o pomoc, to zrobiłem kilkadziesiąt prób, kombinując na wszystkie strony z JOIN (lefty, righty, outery, straighty, innery, crossy, ...) i zagnieżdżonymi zapytaniami. Nie udało mi się (rzadko mi się nie udaje, nie pamiętam kiedy ostatnio mi się nie udało), dlatego podejrzewam, że próbuje przekombinować i nie widzę prostego rozwiązania, które mam pod nosem. Mógłbym odpocząć i jutro się za to zabrać, ale może szybciej będzie w ten sposób (IMG:style_emoticons/default/smile.gif)

Ten post edytował bostaf 25.05.2010, 09:46:30
Go to the top of the page
+Quote Post
phpion
post
Post #4





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




To może pokaż jak kombinowałeś, bo to akurat jest najprostszy z możliwych JOINów.
Go to the top of the page
+Quote Post
bostaf
post
Post #5





Grupa: Zarejestrowani
Postów: 374
Pomógł: 79
Dołączył: 6.04.2010
Skąd: Ostrów Wielkopolski

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


Omg, to rzeczywiście była prościzna.
  1. SELECT tab1.opis, tab2.nazwa
  2. FROM tab1
  3. LEFT JOIN tab2 ON (
  4. tab2.id_tab1 = tab1.id
  5. AND tab2.id = (
  6. SELECT max(tab2.id) FROM tab2 WHERE tab2.id_tab1 = tab1.id
  7. )
  8. )

Jak zwykle, w gąszczu prób, pogubiłem elementy składni (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post

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: 23.08.2025 - 17:05