Strona 1 z 1

[SQL] Kłopot z relacjami w bazie

: śr gru 07, 2005 11:17 pm
autor: axmann
Witam
Jestem poczatkujacy. Prosta baza.
Przykladowo 2 tabele

a) pierwsza nazwa o polach m.in. id_nazwa, site, site_link, ranking

b) druga site_games o polach: id_nazwa, id_gry

Chce znalezc np. rekord site oraz id_gry.
Zrobilem takie zapytanie do danych z formularza:
[sql]SELECT nazwa.id_nazwa, nazwa.site, nazwa.site_link, nazwa.ranking
FROM nazwa, site_games WHERE nazwa.site LIKE \"%$site%\" &&
site_games.id_gry=='$id_gry'[/sql]

Problem - sql daje zle wyniki. Wyswietla wszystko gdy zgadza sie nazwa.site LIKE \"%$site%\" a nie ten wlasciwy rekord.

Prosze o pomoc.

Re: [SQL] Kłopot z relacjami w bazie

: śr gru 07, 2005 11:54 pm
autor: viraptor
Jeśli dobrze rozumiem o co ci chodzi, to musisz dołączyć jeszcze nazwa.id_nazwa=site_games.id_nazwa
Ale to się robi przez SELECT ... JOIN ON ...
http://dev.mysql.com/doc/refman/4.1/en/join.html

Re: [SQL] Kłopot z relacjami w bazie

: śr gru 07, 2005 11:59 pm
autor: v0lrath
Może spróbuj czegoś takiego (nie wiem, ale może o coś takiego chodzi):

[sql]
SELECT nazwa.id_nazwa, nazwa.site, nazwa.site_link, nazwa.ranking
FROM nazwa, site_games
INNER JOIN site_games
ON nazwa.id_nazwa == site_games.id_nazwa
WHERE nazwa.site LIKE "%$site%" AND site_games.id_gry == '$id_gry'
GROUP BY nazwa.id_nazwa
[/sql]