![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 28.06.2015 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Chcę napisać system newsów z możliwością przypisania kilku kategorii do jednego artykułu. Mam cztery tabele:
Poniższym zapytanie wyjmuję z bazy listę artykułów i autorów.
Chciałbym aby w tym zapytaniu z bazy zostały wyjęte jeszcze kategorie artykułów. Może ktoś podrzucić pomysł? |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 282 Pomógł: 89 Dołączył: 12.04.2011 Ostrzeżenie: (0%) ![]() ![]() |
Wprawdzie przy INNER JOIN nie ma różnicy czy warunek złączenia wrzucisz do WHERE czy do ON, ale proponuję jednak korzystać z tej drugiej składni. Bo już przy LEFT JOIN różnica jest, a że będziesz potrzebować właśnie takiego typu złączenia do wyciągnięcia kategorii w sytuacji gdy artykuł może nie mieć przypisanej żadnej kategorii, to lepiej jednak dla czytelności mieć od razu widoczne po jakich kolumnach łączysz. Zresztą to dobra praktyka jest.
Jeśli chcesz mieć dla artykułu wiele rekordów każdy z inną kategorią to po prostu dodajesz dwie tabele łącząc articles_categories po id_articles oraz categories po id_category, a jeśli w jednym rekordzie listę kategorii oddzielonych przecinkiem to stosujesz GROUP BY i GROUP_CONCAT w podzapytaniu, czyli przykładowo:
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 28.06.2015 Ostrzeżenie: (0%) ![]() ![]() |
Wielkie dzięki.
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 15:12 |