Чтобы правильно понять как устроен запрос Печать
Автор: А.Волос   
29.04.2011 04:02

Вообще, чтобы правильно понять как устроен запрос,
то можно разбить запрос на отдельные фрагменты
постепенно добавляя новые условия:


--------------------
Правильно:
SELECT jos_content.title, jos_sections.title, jos_categories.title, jos_users.name
FROM jos_content, jos_sections, jos_categories, jos_users
WHERE jos_sections.published =1 AND jos_categories.published =1
LIMIT 1

---------------------
Правильно:
SELECT jos_content.title, jos_sections.title, jos_categories.title, jos_users.name,

CASE WHEN CHAR_LENGTH( jos_content.alias )
THEN CONCAT_WS(':', jos_content.id, jos_content.alias )
ELSE jos_content.id
ENDAS slug

FROM jos_content, jos_sections, jos_categories, jos_users
WHERE jos_sections.published =1
AND jos_categories.published =1
LIMIT 1

---------------------
Правильно:
SELECT jos_content.title, jos_sections.title, jos_categories.title, jos_users.name,

CASE WHEN CHAR_LENGTH( jos_content.alias )
THEN CONCAT_WS(':', jos_content.id, jos_content.alias )
ELSE jos_content.id
END AS slug,

CASE WHEN CHAR_LENGTH( jos_categories.alias )
THEN CONCAT_WS(':', jos_categories.id, jos_categories.alias )
ELSE jos_categories.id
END AS catslug

FROM jos_content, jos_sections, jos_categories, jos_users
WHERE jos_sections.published =1
AND jos_categories.published =1
LIMIT 5

Результат:

title title title name slug catslug

Пример новости 1 Новости Последние новости Administrator 2:newsflash-1 1:latest-news
Пример новости 1 FAQ Последние новости Administrator 2:newsflash-1 1:latest-news
Пример новости 1 Информация о Joomla! Последние новости Administrator 2:newsflash-1 1:latest-news
Пример новости 1 Joomla Статьи 01 Последние новости Administrator 2:newsflash-1 1:latest-news
Пример новости 1 PHP Статьи 01 Последние новости Administrator 2:newsflash-1 1:latest-news

---------------------
Правильно:
SELECT jos_content.title, jos_sections.title, jos_categories.title, jos_users.name,
CASE WHEN CHAR_LENGTH( jos_content.alias )
THEN CONCAT_WS(':', jos_content.id, jos_content.alias )
ELSE jos_content.id
END AS slug,
CASE WHEN CHAR_LENGTH( jos_categories.alias )
THEN CONCAT_WS(':', jos_categories.id, jos_categories.alias )
ELSE jos_categories.id
END AS catslug
FROM jos_content
LEFT JOIN jos_users ON jos_users.id = jos_content.created_by
INNER JOIN jos_categories ON jos_categories.id = jos_content.catid
INNER JOIN jos_sections ON jos_sections.id = jos_content.sectionid
WHERE jos_sections.published =1
AND jos_categories.published =1
LIMIT 5

Результат:

title title title name slug catslug
Пример новости 1 Новости Краткие новости Administrator 2:newsflash-1 3:newsflash
Пример новости 2 Новости Краткие новости Administrator 3:newsflash-2 3:newsflash
Пример новости 3 Новости Краткие новости Administrator 4:newsflash-3 3:newsflash
Пример новости 5 Новости Краткие новости Administrator 41:newsflash-5 3:newsflash
Пример новости 4 Новости Краткие новости Administrator 42:newsflash-4 3:newsflash


Вверх

Правильный CSS!

Обновлено 05.05.2011 09:42