Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL]Zapytania do bazy
Forum PHP.pl > Forum > Przedszkole
baambaam
Od 2 dni męczę się ze stworzeniem zapytania do mojej bazy (dla uproszczenia działać to ma na zasadzie tagów)
  1. tabela post
  2. -id
  3. -tresc i kilka innych
  4.  
  5. tabela tagi
  6. -id
  7. -nazwa_tagu
  8.  
  9. tabela relacja
  10. -id_post
  11. -id_tag

  1. SELECT p.*,t.nazwa_tagu
  2. FROM relacja r, post p, tagi t
  3. WHERE p.id=2 AND r.id_post=2 AND t.id=r.id_tag

teraz jest dwójka, ale liczba będzie pochodzić z geta. Problem z tym zapytaniem jest taki, że pobierany zostaje tylko 1 tag, chciałbym, żeby wyszukiwał wszystkie powiązane z id'em postu. Będę wdzięczny za pomoc
abort
Nie wiem czy dobrze zrozumiałem, ale może 'OR' zamiast 'AND' się nada?
baambaam
To coś innego. Wydaje mi sie, ze musze uzyc JOIN, tylko nie bardzo wiem jak to zrobić na trzech tabelach
sowiq
https://www.google.pl/search?q=mysql+join

  1. SELECT pola
  2. FROM tabela1 t1
  3. JOIN tabela2 t2 ON t1.id = t2.t_id
  4. JOIN tabela3 t3...
  5. WHERE ...


Weź tylko pod uwagę, że w wyniku otrzymasz wiele wierszy (nie wiem czy jest to dla Ciebie oczywiste). Jeśli chciałbyś dostać tylko jeden wiersz z listą tagów, użyj GROUP CONCAT
baambaam
Ta część zapytania nie jest związana z tabelami w pierwszym poście, dlatego inne nazwy kolumn
  1. GROUP_CONCAT(name,img) AS profil

tabela wygląda tak
  1. id | name | img
  2. -----------------------
  3. 1 | kot | fota1.png
  4. 1 | pies | fota2.png
  5.  

zwraca mi coś takiego
  1. [profil] => kotfota1.png,piesfota2.png

Jak mógłbym zedytować tą część zapytania abym dostał np coś takiego:
  1. [profil] => kot-fota1.png,pies-fota2.png
mmmmmmm
GROUP_CONCAT(CONCAT(`name`,'-',`img`))
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.