Einzelnen Beitrag anzeigen

omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: SQL-Abfragen zusammenfassen

  Alt 6. Jul 2006, 19:10
Hallo Matze,

vielleicht so...

SQL-Code:
SELECT 'get blog entry' typ, 1 sort, b.*, bd.*
FROM BLOG_ENTRIES b
LEFT JOIN BLOG_ENTRIES_DATA bd
  ON b.blog_id = bd.blog_id
WHERE b.lang = sqlval($site_lang['lang_short'])
  AND b.blog_id = sqlval($id)
  AND bd.blog_show = 1

UNION

SELECT 'previous entry' typ, 2 sort, b.*, bd.*
FROM BLOG_ENTRIES b
LEFT JOIN BLOG_ENTRIES_DATA bd
  ON b.blog_id = bd.blog_id
LEFT JOIN BLOG_CATEGORIES_DATA bcd
  ON bd.blog_cat_id = bcd.blog_cat_id
WHERE b.lang = sqlval($site_lang['lang_short'])
  AND bcd.blog_cat_show = 1
  AND bd.blog_id = (SELECT MAX(bd.blog_id)
                    FROM BLOG_ENTRIES b
                    LEFT JOIN BLOG_ENTRIES_DATA bd
                      ON b.blog_id = bd.blog_id
                    LEFT JOIN BLOG_CATEGORIES_DATA bcd
                      ON bd.blog_cat_id = bcd.blog_cat_id
                    WHERE b.lang = sqlval($site_lang['lang_short'])
                      AND bcd.blog_cat_show = 1
                      AND blog_id < $id)

UNION

SELECT 'next entry' typ, 3 sort, b.*, bd.*
FROM BLOG_ENTRIES b
LEFT JOIN BLOG_ENTRIES_DATA bd
  ON b.blog_id = bd.blog_id
LEFT JOIN BLOG_CATEGORIES_DATA bcd
  ON bd.blog_cat_id = bcd.blog_cat_id
WHERE b.lang = sqlval($site_lang['lang_short'])
  AND bcd.blog_cat_show = 1
  AND bd.blog_id = (SELECT MIN(bd.blog_id)
                    FROM BLOG_ENTRIES b
                    LEFT JOIN BLOG_ENTRIES_DATA bd
                      ON b.blog_id = bd.blog_id
                    LEFT JOIN BLOG_CATEGORIES_DATA bcd
                      ON bd.blog_cat_id = bcd.blog_cat_id
                    WHERE b.lang = sqlval($site_lang['lang_short'])
                      AND bcd.blog_cat_show = 1
                      AND blog_id > $id)


UNION

SELECT 'get blog_category' typ, 4 sort, b.*, bd.*
FROM BLOG_ENTRIES b
LEFT JOIN BLOG_ENTRIES_DATA bd
  ON b.blog_id = bd.blog_id
LEFT JOIN BLOG_CATEGORIES_DATA bcd
  ON bd.blog_cat_id = bcd.blog_cat_id
WHERE b.lang = sqlval($site_lang['lang_short'])
  AND bd.blog_cat_show = 1
  AND b.blog_cat_id = sqlval($blog_entry['blog_cat_id'])

ORDER BY sort ASC, bd.blog_cat_id DESC
Gruss
Thorsten
  Mit Zitat antworten Zitat