Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Pobieranie danych wyst. w 2 tabelach
Forum PHP.pl > Forum > Przedszkole
yook
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.
xamil
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;)
SongoQ
Mozesz tez zastosowac LEFT JOIN
yook
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
SongoQ
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.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.