Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL]Pobranie video z wykluczeniem kategorii
Lirdoner
post
Post #1





Grupa: Zarejestrowani
Postów: 500
Pomógł: 1
Dołączył: 29.09.2009

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


Witam, na stronie wyświetlam listę ostatnio dodanych materiałów wideo. Z tej listy chcę wyrzucić video z określonych kategorii. Baza wygląda mniej więcej tak

video table:
id | title

categories table:
id | title

video categories table:
video_id | category_id

Moje zapytanie do bazy wygląda tak
  1. SELECT `v`.*
  2. FROM (`video` v)
  3. JOIN `video_categories` c ON `c`.`video_id` = `v`.`id`
  4. WHERE `c`.`category_id` NOT IN (88, 89, 98, 150, 160, 179, 67, 86, 111, 191, 136, 122, 103, 78, 24, 189, 129, 140)
  5. GROUP BY `v`.`id`
  6. ORDER BY `publish_date` DESC
  7. LIMIT 20

Niestety w odpowiedzi dostaje wideo które są przypisane do id w NOT IN. Jak to naprawić?
Go to the top of the page
+Quote Post
SmokAnalog
post
Post #2





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

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


Dostajesz je, bo pewnie są w innych kategoriach spoza czarnej listy. Bez podzapytania się raczej nie obejdzie:
  1. SELECT *
  2. FROM `video`
  3. WHERE `id` NOT IN (
  4. SELECT DISTINCT `video_id`
  5. FROM `video_categories`
  6. WHERE `category_id` IN (
  7. 88,
  8. 89,
  9. 98,
  10. 150,
  11. 160,
  12. 179,
  13. 67,
  14. 86,
  15. 111,
  16. 191,
  17. 136,
  18. 122,
  19. 103,
  20. 78,
  21. 24,
  22. 189,
  23. 129,
  24. 140
  25. )
  26. )
  27. ORDER BY `publish_date` DESC
  28. LIMIT 20


Ten post edytował SmokAnalog 1.03.2015, 18:48:40
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 14.09.2025 - 14:58