Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Dwie tabele i niepowtarzajace sie dane
Forum PHP.pl > Forum > Bazy danych > MySQL
yavaho
Mam dwie tabele i jak mam sformuowac zapytanie aby wyswietlic kolory z tabeli1 ktorych nie ma w tabeli2?

tabela1
ID | kolory
----------------
01 | czerwony
02 | niebieski
03 | zielony
04 | bialy
05 | czarny

tabela2
ID | kolory
----------------
01 | czerwony
02 | niebieski
03 | zielony

I teraz jak wswietlic z tabeli1 kolor bialy i czarny? (to sa te kolory ktorych nie ma w tabeli2)
kicaj
  1. <?php
  2. $query1 = &#092;"SELECT * FROM tabela1\";
  3. $result1 = mysql_query( $query1 );
  4.  
  5. while( $row1 = mysql_fetch_array( $result1 ) )
  6. {
  7. $query2 = &#092;"SELECT * FROM tabela2 WHERE kolory != '\".$row1['kolory'].\"'\";
  8. $result2 = mysql_query( $query2 );
  9.  
  10. while( $row2 = mysql_fetch_array( $result2 ) )
  11. {
  12. echo $row2['kolory'] . &#092;" <br /> \";
  13. }
  14. }
  15. ?>

Nie wiem czy to zadziala, ale jesli by to jest to troche amatorskie smile.gif
yavaho
Ten przyklad ktory dales mozna rowniez napisac w jedym zapytaniu:
  1. <?php
  2. $query = &#092;"SELECT * FROM tabela1, tabela2 WHERE (tabela1.kolory <> tabela2.kolory)\";
  3. ?>

Ale w ten sposob sprawdza kazdy rekord z tabeli1 i porownuje go z kazdym rekordem z tabeli2.
A w wyniku wyswietla wszystkie mozliwosci w ktorych (tabela1.kolory <> tabela2.kolory)
Ja w wyniku musze otrzymac tylko dwa wiersze.
zalew
'distinct' nie zalatwi sprawy?
yavaho
Tez nic z tego
Disting wyszukuje niepowtarzajacych sie rekordow w jednej tablicy. Nie potrafi porownac dwoch tablic.
Szkoda ze Disting nie potrafi wybrac rekordy juz z wynikow wyszukiwania, tak jak to robi polecenie np ASC lub DESC.
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-2024 Invision Power Services, Inc.