Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Zapytanie SQL
Denver
post
Post #1





Grupa: Zarejestrowani
Postów: 132
Pomógł: 0
Dołączył: 24.09.2003
Skąd: Giżycko / Wrocław

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


Witam.

Mam w bazie MySQL dwie tabele: users i moderators

users posiada pole "id", moderators posiada pole "user_id"

potrzebuje wybrac z bazy wszystkich uzytkownikow (users), ktorych wartosc pola "id" nie istnieje w zadnym polu w rekordach tabeli moderators...

jesli zalozmy dam:

[sql:1:207a4b038c]SELECT u.id as u_id FROM users u, moderators m WHERE m.user_id != u.id ORDER BY u.id ASC[/sql:1:207a4b038c]

to gdy rekordow w tabeli moderators jest pięć, to wypisuje mi 5 razy kazdego usera, a chcialbym, aby wypisal tylko 1 raz.



jakies propozycje?

z gory dzieki


--------------------
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
FiDO
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 717
Pomógł: 0
Dołączył: 12.06.2002
Skąd: Wolsztyn..... Studia: Zielona Góra

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


uzyj DISTINCT
Go to the top of the page
+Quote Post
Denver
post
Post #3





Grupa: Zarejestrowani
Postów: 132
Pomógł: 0
Dołączył: 24.09.2003
Skąd: Giżycko / Wrocław

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


dzieki bardzo, nie znalem dotychczas tego polecenia. wystarczylo po SELECT wpisac DISTINCT i dziala smile.gif dzieki jeszcze raz.


--------------------
Go to the top of the page
+Quote Post
uboottd
post
Post #4





Grupa: Zarejestrowani
Postów: 384
Pomógł: 0
Dołączył: 3.04.2003
Skąd: Chorzow

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


Jak Ci sie ta baza rozrosnie to DBMSowi stana wlosy deba jak zobaczy takie zapytanie. Pamietaj ze zanim on znajdzie wynik to musi wykonac pelne kartezjanskie sklejenie ( czyli wygeneorwac sobie wynik o ilosc uztkownikow razy ilosc moderatow ) wierszy.

lepsza metoda:
[sql:1:d59a4795b7]
SELECT u.id AS u_id
FROM users u LEFT JOIN moderators m ON u.id = m.user_id
WHERE m.user_id is null
ORDER BY u.id ASC
[/sql:1:d59a4795b7]
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: 19.08.2025 - 06:29