Topic: Paveiksliukų tag'ai.
Sveiki,
gal kas galit pagelbėt ar ant teisingo kelio užvesti.
Yra trys lentelės:
pics
| id | name | ext |
tags
| id | text |
tagged
| id | pic_id | tag_id |
Kaip tikriausiai supratote yra paveiksliukai ir jų tag'ai. Noriu padaryti paiešką pagal tag'us. Tiksliau dvi paieškas. Viena "and" kita "or" principu.
"or" paieškos užklausa yra tokia
SELECT tagged.*, tags.text, pics.name, pics.ext FROM `tagged`
LEFT JOIN `tags` ON tagged.tag_id = tags.id
LEFT JOIN `pics` ON tagged.pic_id = pics.id
WHERE tags.text = 'sky' OR tags.text = 'blue' OR ... ir t.t.
Tačiau jei yra paveiksliukas turintis tiek 'sky' tiek 'blue' tag'us tai jį parenka du kartus. Tai išsprendžiau su php pagalba, tačiau manau optimaliau būtų pakeisti užklausą. Bandžiau ir su DISTINCT ir su GROUP BY, tačiau neišėjo man nieko :|
Kita problema yra "and" paieška. Visiškai neįsivaizduoju nuo kurio galo pradėti ją rašyti :| Reikia, kad atrinktų tik tuos paveiksliukus kurie turi (pateikto pavyzdžio atveju) tiek "sky" tiek "blue" tag'ą. Bet tuo pačiu ir informaciją apie juos (reikalingi visi stulpeliai esantys auksčiau pateiktoje užklausoje). Gal turite kokių nors minčių?