Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Pobieranie danych wyst. w 2 tabelach
yook
post 15.07.2005, 22:26:49
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 15.07.2005

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


Witam.

Mój problem jest następujący. Powiedzmy, że mam dwie tabele w bazie danych z jakimiś tam danymi.

# tabela1
id | nazwa
1 | asd
2 | abc
3 | dsa
...

# tabela2
id | nazwa
1 | bfd
2 | ehb
3 | asd
...

Pytanie:
Jak za pomocą SELECT'a pobrać te rekordy, które występują w obydwu tabelach (w powyższym przykładzie 'asd') ?

Próbowałem tak:
  1. <?php
  2.  
  3. $tab1=mysql_query(&#092;"SELECT * FROM tabela1\");
  4. while($rzad1 = mysql_fetch_array($tab1)) 
  5. {
  6. $tab2=mysql_query(&#092;"SELECT * FROM tabela2 WHERE nazwa='$rzad1['nazwa']' \");
  7. while($rzad2 = mysql_fetch_array($tab2)) 
  8. {
  9. echo $rzad2['nazwa'].&#092;"<br>\";
  10. }
  11. }
  12.  
  13. ?>

...ale coś nie wychodziło.

Z góry dzięki za pomoc. Pozdrawiam, yook.
Go to the top of the page
+Quote Post
xamil
post 15.07.2005, 23:14:04
Post #2





Grupa: Zarejestrowani
Postów: 158
Pomógł: 0
Dołączył: 9.01.2005

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


Kod
WHERE nazwa='".$rzad1['nazwa']."'


Ale do porównywania dwóch tabel jest jakaś inna prosta i zasobo oszczędna metoda;) Jaka? Nie wiem;) Nie miałem potrzeby używać;)


W sumie to chyba można zrobić coś takiego...
Kod
SELECT tabela1.nazwa FROM tabela1, tabela2 WHERE (tabela1.nazwa=tabela2.nazwa);

... ale nie jestem pewien;)

Ten post edytował xamil 15.07.2005, 23:19:05
Go to the top of the page
+Quote Post
SongoQ
post 16.07.2005, 07:33:03
Post #3





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


Mozesz tez zastosowac LEFT JOIN


--------------------
Go to the top of the page
+Quote Post
yook
post 16.07.2005, 10:24:31
Post #4





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 15.07.2005

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


Kod
SELECT tabela1.nazwa FROM tabela1, tabela2 WHERE (tabela1.nazwa=tabela2.nazwa);

Działa ok. Mam jeszcze pytanie, jakby ten kod wyglądał jakbym chciał pobrać dane występujące np, w 3 tabelach ?

I czy ktoś mi może mniej więcej wytłumaczyć jak w tym przypadku skorzystać z funkcji LEFT JOIN ?

Dzięki za pomoc. winksmiley.jpg
Go to the top of the page
+Quote Post
SongoQ
post 17.07.2005, 19:20:44
Post #5





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


Tak samo dokladasz dodatkowa tabele i dajesz warunek.

LEFT JOIN laczy tak samo jak ten powyzej, ale gdy nie ma dopasowania to uzupelnia NULLami, poszukaj no forum czesto sie to pojawia.


--------------------
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: 19.07.2025 - 04:27