Next Generation CMS :: Форум поддержки

Заинтересовала наша система? Тогда этот форум для Вас!

Вы не зашли.

#1 2012-03-06 17:38:25

Knopik
Разработчик
Откуда ufa
Зарегистрирован: 2009-10-14
Сообщений: 353
Рейтинг :   62 
Сайт

Разжуйте пожалуйста SQL запрос

Привет всем! Помогите разжевать Sql запрос smile

SELECT c.id AS cid,
       c.cat_name, f.id AS fid,
       f.forum_name, f.forum_desc, f.redirect_url, f.moderators, f.num_topics, f.num_posts, f.last_post, f.last_post_id, f.last_poster 
       FROM lol_categories AS c 
INNER JOIN lol_forums AS f ON c.id=f.cat_id 
LEFT JOIN lol_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=1)
WHERE fp.read_forum IS NULL OR fp.read_forum=1 ORDER BY c.disp_position, c.id, f.disp_position

Простые запросы понимаю, а вот такого типа нет. примерно догадываюсь что он делает. Хочу понять, чтобы писать такие же, или примерно...

ps: Это запрос из исходников форума punbb 1.2

Изменено Knopik (2012-03-06 17:40:11)

Не в сети

#2 2012-03-06 18:22:16

Wolverine
Модератор
Откуда Домодедово
Зарегистрирован: 2008-10-13
Сообщений: 3,538
Рейтинг :   160 
Сайт

Re: Разжуйте пожалуйста SQL запрос

Чтобы разжевать запрос нужна как минимум структура БД smile

В чем проблема? С пониманием, что делает INNER JOIN и LEFT JOIN ?

Не в сети

#3 2012-03-13 19:00:44

Knopik
Разработчик
Откуда ufa
Зарегистрирован: 2009-10-14
Сообщений: 353
Рейтинг :   62 
Сайт

Re: Разжуйте пожалуйста SQL запрос

Wolverine, да, не до конца понял... а на счет структуры:
lol_forums = список форумов
lol_forum_perms = права пользователей
lol_categories = категории

все они связаны между собой по id

INNER JOIN lol_forums AS f ON c.id=f.cat_id

Выходит так: Добавить строку из lol_forums как f где c.id=f.cat_id

LEFT JOIN lol_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=1)

Добавить строку из lol_forum_perms как fp где (fp.forum_id=f.id и fp.group_id=1)

Не могу понять, в чем их различие?

Не в сети

Подвал раздела

Работает на FluxBB