Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Bardzo zaawansowane zapytanie SELECT odnoszące się do 2 tabeli
Forum PHP.pl > Forum > Bazy danych > MySQL
seba22
Witam,

Stanąłem nad bardzo poważnym problemem który za waszym pozwoleniem zamierzam opisać poniżej.

Mam 2 tabele stanowiące część bazy danych mojej witryny.

Pierwsza z nich zawiera wpisy o przykładowych polach.
Nazwa: wpisy

id,tytul,tagi,data,autor,tresc

Przykładowy rekord to:

21,test,bla bla,11-12-2008,testowy,smok cmok

Kolejna tabela to kategorie
nazwa:kategoria

id,idwpisu,kategoria

Przykładowy rekord
1,21,3

Takich rekordów, może być więcej, jeżeli tylko odnoszą się do tego samego identyfikatora z tabeli wpisy.
Jednym słowem wpis 21 może zostać przypisany do kategorii o nazwie 3 4 5 i 6 poprzez dodanie odpowiednich rekordów zawierających numer kategorii oraz id wpisu.


Pytanie logistyczno programistyczne jak to rozwiązać.

Na chwile obecną jest to pewnego rodzaju projekt, ale obawiam się o jego wykonanie, nie wspominam nawet o zapytaniu które używając języka metafory brzmiało by tak " Wyszukaj wpis zawierający tytul = bla bla autora = bla bla date = bla bla ZNAJDUJĄCEGO się w kategorii o identyfikatorze 3.


Zastanawia mnie czy nie łatwiej było by wykonać modyfikację i do tabeli wpisy, dodać dodatkowe pole zawierające w sobie następujące informację: kategoria
gdzie po przecinku mogli byśmy wymienić kilka 3,5 a po zapytaniach typu WHERE dać dodatkowy warunek ? (nie wiem czy można łączyć z klauzulą WHERE) LIKE kategoria="%3%" .

Co panowie sądzicie o tym?
Pierwszy pomysł łatwiej wykonać, czy drugi ?


pozdrawiam
Tibod
Nie ma potrzeby przerabiać tabeli. Ta struktura jest dobra.

  1. SELECT *
  2. FROM wpisy w
  3. LEFT JOIN kategoria k ON k.idwpisu=w.id
  4. WHERE autor="" AND tytul="" AND k.id=3
seba22
Witam,

Bardzo dziękuję, przetestowałem powyższe zapytanie w środowisku testowym i wydaje się działać poprawnie.

Dzisiaj zaimplementuje w produkcyjnym.


Jak nadmieniłem jeszcze raz dziękuję Panie Tibod



pozdrawiam
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.