Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL] Problem z zapytaniem do bazy
Forum PHP.pl > Forum > Przedszkole
adam882
Witam

Posiadam dwie tabele: katalogi (id,nazwa,url) oraz relacje (id,idkatalogu,idprojektu).
Pierwsza tabela zawiera bazę katalogów stron, druga zapisuje, czy projekt został dodany do katalogu.
Mam problem z ułożeniem zapytania, które pobierałoby "url" z tabeli "katalogi" z wykluczeniem rekordów znajdujących się w tabeli "relacje" (idkatalogu).

Na chłopski rozum chciałbym, aby zapytanie przebiegało tak:
  1. SELECT id, nazwa, url FROM katalogi WHERE id<>idkatalogu
(Wiem, że zapytanie błędne, ale mam nadzieję, że zobrazuje mój problem. Znacie może jakieś ciekawe rozwiązanie?)
marcio
Jesli chcesz uzyc relacji pomiedzy tabelami wykluczajac idkatalog z tabeli RELACJE uzyj polecenia sql:
  1. SELECT katalogi.*, relacje.id, relacje.idprojektu FROM katalogi LEFT JOIN ON(katalogi.id = relacje.id) WHERE katalogi.id = 1
athei
Jak już to
  1. SELECT katalogi.id, katalogi.nazwa, katalogi.url
  2. FROM katalogi
  3. LEFT JOIN relacje
  4. ON relacje.idkatalogu = katalogi.id
  5. WHERE relacje.idkatalogu IS NULL
adam882
Niestety oba zapytania nie są poprawne. Chciałbym również uwzględnić, że tabela relacje nie posiada rekordów odpowiadających każdemu katalogi w tabeli katalogi (tylko relacje informujące o dodaniu do katalogów).
Najpewniej zadziałają na ten problem dwa zapytania, gdzie jedno pobiera wszystkie "idkatalogu" dla wybranego projektu i tworzy warunek:
$warunek='WHERE id<>'.$row['idkatalogu'].''; a następnie wykonuję zapytanie $pobierz='SELECT * FROM katlaogi '.$warunek.''; - tylko, że moim zdaniem takie zapytanie z czasem stanie się strasznie długie sad.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.