![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 110 Pomógł: 0 Dołączył: 4.02.2003 Ostrzeżenie: (0%) ![]() ![]() |
Sa dwie tabelki
Kod +------------------------+------------------------+ | TABELA_1 | +------------------------+------------------------+ | pole | tabel2_pole_ID | +------------------------+------------------------+ | wartosc1 | 1 | | wartosc2 | 2 | | wartosc3 | 2 | | wartosc4 | NULL | | wartosc5 | NULL | +------------------------+------------------------+ +------------------------+------------------------+ | TABELA_2 | +------------------------+------------------------+ | pole_ID | pole | +------------------------+------------------------+ | 1 | cos1 | | 2 | cos2 | +------------------------+------------------------+ Teraz wysylam zapytanie:
w rezurtacie otrzymuje: Kod +------------------------+------------------------+ | TABELA_1.pole | TABELA_2.pole | +------------------------+------------------------+ | wartosc1 | cos1 | | wartosc2 | cos1 | | wartosc3 | cos2 | +------------------------+------------------------+ problem w tym ze TABELA_1.tabela2_poleID moze byc NULL i gdy mam w TABELA_1.pole wartosc4 i wartosc5 gdzie TABLEA_1. tabela2_pole_ID jest NULL to po tym zapytaniu nie zostanie to wyciagniete. ...Rzecz jasana bo zapytanie dokladnie mowi ze TABELA_1.tabel2_pole_ID=TABELA_2.poleID. PYTANIE: Jak zbudowac zapytanie by jesli TABELA_1.tabel2_pole_ID jest NULL to zwracane TABELA_2.pole ma tez byc NULL i w efekcje dostane cos takiego: Kod +------------------------+------------------------+ | TABELA_1.pole | TABELA_2.pole | +------------------------+------------------------+ | wartosc1 | cos1 | | wartosc2 | cos1 | | wartosc3 | cos2 | | wartosc4 | NULL | | wartosc5 | NULL | +------------------------+------------------------+ Z gory dziekuje i pozdrawiam evo |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 36 Pomógł: 0 Dołączył: 10.11.2003 Ostrzeżenie: (0%) ![]() ![]() |
nie wiem jak jest z obsluga left i right join'ow w mysql,
ale w mssql zadziala cosik takiego"
pozdrawiam -------------------- Apache 2.0.53 | PHP 5.0.3 | MSSQL 2000 SP4
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 110 Pomógł: 0 Dołączył: 4.02.2003 Ostrzeżenie: (0%) ![]() ![]() |
dzieki tak dziala!
dziekuje i pozdrawiam evo EDIT: a moglbys tak laptologicznie wytlumaczyc co te left join i right join dokladnie robie? bo troche tego nei rozumiem ![]() Pozdrawiam Ten post edytował evo 4.05.2005, 15:13:57 |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 853 Pomógł: 25 Dołączył: 27.08.2003 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
Cytat(evo @ 2005-05-04 15:07:59) a moglbys tak laptologicznie wytlumaczyc co te left join i right join dokladnie robie? bo troche tego nei rozumiem ![]() np. tab1 LEFT JOIN tab2 ON tab1.id = tab2.id. wtedy pobierane sa <b>wszystkie</b> rekordy z tabeli tab1 i dopasowywane sa do nich te z tabeli tab2. tam gdzie tab1 nie ma swoich odpowiednikow w tab2 pojawiaja sie NULLe. RIGHT JOIN analogicznei tyle ze sa pobeirane wszystkie rekordy z tabeli tab2 (tej po prawej). -------------------- "If debugging is the process of removing bugs, then programming must be the process of putting them in..."
sobstel.org |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 36 Pomógł: 0 Dołączył: 10.11.2003 Ostrzeżenie: (0%) ![]() ![]() |
left join pokaze wszystkie rekordy z tablicy nadrzednej (w tym przypadku Tabela_1)
nawet jesli w tablicy podrzednej (tabela_2) nie ma klucza (odpowiednikow). right - odwrotnie sa jeszcze full joiny, cross joiny Pozdrawiam -------------------- Apache 2.0.53 | PHP 5.0.3 | MSSQL 2000 SP4
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 110 Pomógł: 0 Dołączył: 4.02.2003 Ostrzeżenie: (0%) ![]() ![]() |
dziekuje i pozdrawiam
evo |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 14:16 |