Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: problem z zapytaniem
Forum PHP.pl > Forum > Bazy danych > MySQL
artur81
Mam 4 tabele w bazie o strukturach

DEALBUMY - niemieckie nazwy albumów ze zdjęciami
idalbde - identyfikator albumu
idkatde - id kategorii w której jest album
nazwaalbde - nazwa albumu

ENALBUMY - angielskie nazwy albumów ze zdjęciami
idalben - identyfikator albumu
idkaten - id kategorii w której jest album
nazwaalben - nazwa albumu

DEKATEGORIE - niemieckie nazwy kategorii w ktorych są albumy
idkatde - id kategorii
nazwakatde - nazwa kategorii

ENKATEGORIE - angielskie nazwy kategorii w których są albumy
idkaten - id kategorii
nazwakaten - nazwa kategorii

chcę z niej pobrać dane do tabeli aby wyglądały mniej więcej tak
pole1 - idalben/idalbde (ten sam numer, więc będę wyświetlał jeden)
pole2 - album nazwa angielska
pole3 - album nazwa niemiecka
pole4 - kategoria nazwa angielska/kategoria nazwa niemiecka



napisałem takie zapytanie, aby pobrać albumy w kategorii pierwszej ale zwróciło mi jakieś bzdury, problem jest w zapytaniu ale nie umiem poprawić
  1. SELECT idalben, nazwaalben, nazwaalbde, nazwakaten, nazwakatde
  2. FROM enalbumy, dealbumy, enkategorie, dekategorie
  3. WHERE enalbumy.idkaten = '1' AND dealbumy.idkatde = '1'

Chodzi o to aby utworzyć listę wszystkich albumów pogrupowanych wg kategorii, robię galerię i chcę móc przesuwać albumy zdjęć pomiędzy kategoriami, jakbym omyłkowo wstawił nie do tej co potrzeba.
SongoQ
W from uzywasz enalbumy, dealbumy, enkategorie, dekategorie
ale w WHERE nie laczysz tych tabel. Dlatego dostajesz wszystko mozliwe kombinacje tych tabel
artur81
źle coś robię, probowałem tak
  1. SELECT idalben, nazwaalben, nazwaalbde, nazwakaten, nazwakatde
  2. FROM enalbumy, dealbumy, enkategorie, dekategorie
  3. WHERE enalbumy.idkaten = enkategorie.idkaten AND dealbumy.idkatde = dekategorie.idkatde

Jeżeli dobrze cię zrozumiałem to chodziło o połącznie pól
idkaten z tabeli enalbumy z idkaten z tabeli enkategorie i tak samo dla niemieckiej wersji, ale
nic to nie zmieniło, dalej wyrzuca mi wszystkie rekordy

Może coś niejasno napisałem, napiszcie to postaram się wytłumaczyć inaczej, ja nie mogę sobie poradzić
SongoQ
Jeszcze zgubiles jeden warunek
artur81
Dzięki za naprowadzenie i za to że nie podałeś rozwiązania na talerzu. Często lepiej dojść samemu do rozwiązania, przy okazji doczytałem sobie o złączniach guitar.gif

Rozwiązanie
  1. SELECT idalben, nazwaalben, nazwaalbde, nazwakaten, nazwakatde
  2. FROM enalbumy, dealbumy, enkategorie, dekategorie
  3. WHERE enalbumy.idkaten = enkategorie.idkaten AND dealbumy.idkatde = dekategorie.idkatde AND enalbumy.idalben = dealbumy.idalbde
SongoQ
Cytat
Dzięki za naprowadzenie i za to że nie podałeś rozwiązania na talerzu

Przynajmniej Ty to doceniles. smile.gif
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-2025 Invision Power Services, Inc.