artykul:
id_item | name
1 name1
2 name2
3 name3
kategoria_artykul:
id_item | id_category
1 2
1 5
klucz głowny w tabeli artykul (id_item) jest kluczem obcym w tabeli kategoria_artykul
Teraz chce wyciągnąć rekordy z tabeli artykul z przypisanymi do nich kategoriami
SELECT a.*, k.id_category FROM artykul a LEFT JOIN kategoria_artykul k ON a.id_item=k.id_item
Takie zapytanie zwróci prawidłowe wyniki, z tym, że artykuły które mają kilka kategorii zdubluje.
I teraz pytanie, czy da się w czystym SQL'u zwrócić tak dane, żeby artykuł, który ma przypisanych kilka kategorii, nie był dublowany, tylko w jednej kolumnie wpisał wszystkie kategorie artykułu.
czyli coś takiego
SELECT a.*, (SELECT id_category FROM kategoria_artykul k WHERE k.id_item=a.id_item) AS categories FROM artykul a
z tym, żeby to podzapytanie zwracało ciąg id_kategorii, a nie x rekordów