Új hozzászólás Aktív témák

  • bsh

    addikt

    üdv,
    új kérdésem lenne, még az előbbi "projekthez". a bonyolult sok joines lekérdezés már frankón működik (és gyors is), de még kéne bele egy dolog, és ezt nem bírom megoldani. :O
    adott egy tábla, amiben pdf fájlok helyei vannak (így gyorsabb mint fájlrendszerben keresgélni). van ebben egy RelativePath oszlop, ami ez elérési út fájlnév nélkül UNC formában, egy FileName oszlop, ami csak maga a fájlnév rész, és egy LatModified oszlop a fájl dátumával.
    egy adott tétel pdf-jének a fájlneve elvileg 'rajzszám'+'revízió'+'.pdf' mintával generálható és lekérdezhető a táblából, hogy hol van a fájl.
    több ugyanolyan nevű fájl is van (sajnos), különböző elérési utakon. ezekből úgy szoktam lekérdezni, hogy LastModified szerint csökkenő sorrendbe rendezve, és a legelső találat akkor a legújabb verziója a fájlnak.
    SELECT RelativePath, FileName, LastModified FROM pdflist WHERE FileName = 'valamiizébigyó.pdf' ORDER BY LastModified DESC LIMIT 0,1;

    ezt kéne valahogy join-nal beintegrálni a nagy bonyolult lekérdezésbe. ezt így próbáltam:
    LEFT JOIN (SELECT FileName, CONCAT(RelativePath, '\\', FileName) AS hely FROM `pdflist` ORDER BY LastModified DESC) pdf ON pdf.FileName = CONCAT(t.rajzszam, t.revizio, '.pdf')

    ezzel az a baj, hogy így visszaadja az összes találatot, ha több ugyanolyan fájlnév is van, nem tudom hogy lehetne itt is megoldani, hogy csak egy találatot adjon vissza fájnevenként. a LIMIT nem jó. próbáltam GROUP BY FileName is...
    a másik probléma hogy ez így tetű lassú. :)

Új hozzászólás Aktív témák

Hirdetés