Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> mysql - JOIN + ograniczanie wyświetlania danych do jednego wystąpienia, pokazanie raz wielokrotnie powtarzanych danych
mpps
post
Post #1





Grupa: Zarejestrowani
Postów: 242
Pomógł: 0
Dołączył: 14.03.2003
Skąd: Szczecin

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


witam,

mam dwie tabele i przykładowe dane:
cat:
id | cat
---------------
1 | aparat
2 | mysz
3 | monitor

oferta:
id | idcat | cat | producent
---------------------------------
1 | 1 | aparat | sony
2 | 2 | mysz | logitech
3 | 1 | aparat | canon
4 | 3 | monitor | nec
5 | 2 | mysz | a4tech
6 | 3 | monitor | lg
7 | 1 | aparat | minolta
8 | 2 | mysz | media-tech

pytanie:
jak zadać pytanie do bazy, aby kategorie (cat) wyświetlić tylko raz, mimo to, że w tabeli 'oferta' powtarzają się wielokrotnie?
  1. $result = mysql_query("select distinct * from cat t1 left outer join oferta t2 on (t1.cat = t2.cat)") OR die(mysql_error());

w zapytaniu brakuje pewnie 'where', ale no właśnie... 'where' co?
i jak później wyświetlić wyniki?
  1. <?php
  2. while($rek = mysql_fetch_array($result)){
  3. print $rek[1];
  4. }
  5. ?>

wyświetla wszystko dobrze, poza tym, że wyświetla właśnie wszystkie wystąpienia, a nie tylko raz.

pozdrawiam
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
maryaan
post
Post #2





Grupa: Zarejestrowani
Postów: 380
Pomógł: 2
Dołączył: 5.01.2007

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


nie przesadzaj, najprostszer ozwiazania sa najlepsze. Distinct smialo mozesz wywalic, wstawiajac go sugerowalem sie tym ze select zamiast "kilku tysiecy", zwroci maksymalnie tyle rekordow ile zawiera tablica cat. NIe wiem czy ma to jakis wplyw na wydajnosc, wydawalo mi sie to w jakis sposob sensowne wiec tak napisalem
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 27.12.2025 - 14:15