Einzelnen Beitrag anzeigen

sancho1980

Registriert seit: 7. Feb 2006
429 Beiträge
 
#4

Re: bde schneller als firebird

  Alt 18. Mai 2006, 11:15
net erschrecken: das ist eine terminologiedatenbank..sucht man nach einem bestimmten asterm, dann wird sicherheitshalber (falls der asterm nicht enthalten ist) auch der vorgänger und soviele nachfolger geholt, bis 20 datensätze insgesamt da sind..asterm ist indiziert, ebenso wie sämtliche fremdschlüssel...(hier suche nach asterm 'peter'):
SQL-Code:
select * from (
      select * from (
            select d.id, d.asterm, d.asabk, d.asprgm, d.assem, d.zsterm, d.zsabk, d.zsprgm, d.zssem, d.datum, d.proj, d.rev, d.upddatum, d.asdef, d.zsdef, d.asaudio, d.asvideo, d.asabbildung, d.zsabbildung, d.zsaudio, d.zsvideo, asmain.asterm as asverw, zsmain.zsterm as zsverw, a.aut as aut, ua.aut as updaut, aslit.qcode as asqcode, zslit.qcode as zsqcode from dicentries d left join dicentries asmain on d.asverw = asmain.id left join dicentries zsmain on d.zsverw = zsmain.id left join aut a on d.aut = a.id left join aut ua on d.updaut = ua.id left join lit aslit on d.asqcode = aslit.id left join lit zslit on d.zsqcode = zslit.id where d.asterm < 'peterorder by asterm descending rows 1
               )
      union
      select d.id, d.asterm, d.asabk, d.asprgm, d.assem, d.zsterm, d.zsabk, d.zsprgm, d.zssem, d.datum, d.proj, d.rev, d.upddatum, d.asdef, d.zsdef, d.asaudio, d.asvideo, d.asabbildung, d.zsabbildung, d.zsaudio, d.zsvideo, asmain.asterm as asverw, zsmain.zsterm as zsverw, a.aut as aut, ua.aut as updaut, aslit.qcode as asqcode, zslit.qcode as zsqcode from dicentries d left join dicentries asmain on d.asverw = asmain.id left join dicentries zsmain on d.zsverw = zsmain.id left join aut a on d.aut = a.id left join aut ua on d.updaut = ua.id left join lit aslit on d.asqcode = aslit.id left join lit zslit on d.zsqcode = zslit.id where d.asterm = 'peter'
      union
      select * from (
            select * from (
                  select d.id, d.asterm, d.asabk, d.asprgm, d.assem, d.zsterm, d.zsabk, d.zsprgm, d.zssem, d.datum, d.proj, d.rev, d.upddatum, d.asdef, d.zsdef, d.asaudio, d.asvideo, d.asabbildung, d.zsabbildung, d.zsaudio, d.zsvideo, asmain.asterm as asverw, zsmain.zsterm as zsverw, a.aut as aut, ua.aut as updaut, aslit.qcode as asqcode, zslit.qcode as zsqcode from dicentries d left join dicentries asmain on d.asverw = asmain.id left join dicentries zsmain on d.zsverw = zsmain.id left join aut a on d.aut = a.id left join aut ua on d.updaut = ua.id left join lit aslit on d.asqcode = aslit.id left join lit zslit on d.zsqcode = zslit.id where d.asterm > 'peterorder by asterm ascending rows 20
                     )
               )
         ) order by asterm ascending rows 20
Um Rekursion zu verstehen, muss man zunächst Rekursion verstehen.
  Mit Zitat antworten Zitat