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.
[SQL] Kłopot z relacjami w bazie
Re: [SQL] Kłopot z relacjami w bazie
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
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
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]
[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]
