3 tabele
- spis: id, nazwa, opis
- tag: id, tag
- relacja: id_spis,id_tag
Poszczególne spisy wywołuję za pomocą wczytanych id tagów:
SELECT s. *
FROM spis s
WHERE s.id
IN (
SELECT x.id_spis
FROM tag t, relacja x
WHERE t.id
IN ($tagi)
AND x.id_tag = t.id
)
Tym sposobem mogę wybrać tagi w zależności od ustalonego id spisu (=1)
SELECT t.tag
FROM tag t
WHERE t.id IN (
SELECT x.id_tag
FROM relacja x
WHERE x.id_spis IN (
SELECT s.id
FROM spis s
WHERE s.id='1'
)
)
W jaki sposób można zmodyfikować pierwsze wczytywanie, bym mógł wczytać oprócz s.* także t.tag?
Problem mam z tym, że dla jednego id ze spisu może być wiele tagów. Jak to zrobić, czego szukać?
Potrzebuję do wypisania w xmlu czegoś na wzór: id="1",nazwa="spis1",opis="to jest spis pierwszy",tagi="tag1,tag2,tag3"
Wypisanie do xmla ładnie działa, poza tymi tagami.
Będę bardzo wdzięczny za pomoc ;)