Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> referencja i NULL ?
evo
post
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:

  1. SELECT TABELA_1.pole, TABELA_2.pole
  2. FROM TABELA_1, TABELA_2
  3. WHERE TABELA_1.tabel2_pole_ID=TABELA_2.poleID;



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
Go to the top of the page
+Quote Post
No1B
post
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"

  1. SELECT a.pole, a.pole
  2. FROM TABELA_1 a
  3. LEFT JOIN TABELA_2 b ON tabel2_pole_ID=poleID


pozdrawiam


--------------------
Apache 2.0.53 | PHP 5.0.3 | MSSQL 2000 SP4
Go to the top of the page
+Quote Post
evo
post
Post #3





Grupa: Zarejestrowani
Postów: 110
Pomógł: 0
Dołączył: 4.02.2003

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


dzieki tak dziala!

  1. SELECT a.pole, b.pole
  2. FROM TABELA_1 a
  3. LEFT JOIN TABELA_2 b ON a.tabel2_pole_ID=b.poleID;


dziekuje i pozdrawiam
evo


EDIT:

a moglbys tak laptologicznie wytlumaczyc co te left join i right join dokladnie robie? bo troche tego nei rozumiem smile.gif


Pozdrawiam

Ten post edytował evo 4.05.2005, 15:13:57
Go to the top of the page
+Quote Post
sobstel
post
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 smile.gif

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
Go to the top of the page
+Quote Post
No1B
post
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
Go to the top of the page
+Quote Post
evo
post
Post #6





Grupa: Zarejestrowani
Postów: 110
Pomógł: 0
Dołączył: 4.02.2003

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


dziekuje i pozdrawiam
evo
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: 20.08.2025 - 14:16