Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl


ziomal22
Napisane: 20.03.2008, 12:17:33





Grupa: Zarejestrowani
Postów: 3
Dołączył: 20.03.2008

Ostrzeżenie: (0%)
-----

Działa! Po stokroć dzięki! :-)
  Forum: MySQL · Podgląd postu: #455339 · Odpowiedzi: 4 · Wyświetleń: 1 318

ziomal22
Napisane: 20.03.2008, 09:48:16





Grupa: Zarejestrowani
Postów: 3
Dołączył: 20.03.2008

Ostrzeżenie: (0%)
-----

Taki wariant też próbowałem, niestety pokaże on również posty które mają tylko jeden z tych tagów. A mi zależy na obu. Jak to odfiltrować?
  Forum: MySQL · Podgląd postu: #455245 · Odpowiedzi: 4 · Wyświetleń: 1 318

ziomal22
Napisane: 20.03.2008, 00:13:53





Grupa: Zarejestrowani
Postów: 3
Dołączył: 20.03.2008

Ostrzeżenie: (0%)
-----

Witam, próbuję jakoś w miarę zgrabnie zapytać bazę o taką sprawę.

Załóżmy że mam 3 tabele: posts, tags i posts_tags.
- posts ma kolumny id oraz title
- tags ma kolumny id oraz tag
- posts_tags ma kolumny post_id oraz tag_id

Jeden post może mieć przypisanych wiele tagów. Chcę wyszukać posty, które są oznaczone danymi tagami. Problem w tym, że chcę wyszukiwać pod kątem kilku tagów na raz, tzn. np szukam posta który ma jednocześnie tag "aktualności" i "święta" (tongue.gif).

Wymodziłem coś takiego:

  1. SELECT `posts`.`id`, `title` FROM `posts` JOIN `posts_tags` ON `posts`.`id` = `posts_tags`.`post_id` JOIN `tags` ON `posts_tags`.`tag_id` = `tags`.`id` WHERE `tag` = 'aktualnosci' AND `tag` = 'swieta' GROUP BY posts.id ORDER BY `date` DESC


To działa dla wyszukiwania jednego tagu, ale gdy chcę wyszukać dwa (jak powyżej), to zwróci pusty wynik. Nie mam pomysłu jak zrobić takie wyszukiwanie, chociaż problem wydaje się być oklepany. Próbowałem GROUP_CONCAT + HAVING LIKE - taki potworek by nawet działał, ale to raczej mało poprawne.

Z góry dziękuję za wszelką pomoc :-)
  Forum: MySQL · Podgląd postu: #455192 · Odpowiedzi: 4 · Wyświetleń: 1 318


New Posts  Nowe odpowiedzi
No New Posts  Brak nowych odpowiedzi
Hot topic  Popularny temat (Nowe)
No new  Popularny temat (Brak nowych)
Poll  Sonda (Nowe)
No new votes  Sonda (Brak nowych)
Closed  Zamknięty temat
Moved  Przeniesiony temat
 

RSS Wersja Lo-Fi Aktualny czas: 5.05.2024 - 23:53