Zdravím,
na jednom internetovém foru jsou fora uložená v tabulce forums. Jednotlivé diskuse (témata) pod daným forumem jsou uložená v tabulce topics. Ještě je tam tabulka forum_perms, která udává jaké má uživatel privilégia, zda smí přispívat do diskuse, prohlížet forum apod. Taky je tam tabulka subscriptions, odkud se dá zjistit zda uživatel chce sledovat danou diskusi. Na stránce s diskusí se před zobrazením diskuse provádí tento SQL příkaz (pro přehlednost rozděleno na víc řádků):
SELECT t.uid, t.subject, t.desc_x, t.first_post_id, t.closed, t.num_replies, t.sticky,
f.id AS forum_id,
f.forum_name, f.moderators,
fp.post_replies, s.user_id AS is_subscribed
FROM
topics AS t
INNER JOIN
forums AS f
ON
f.id=t.forum_id
LEFT JOIN forum_perms AS fp
ON (fp.forum_id=f.id AND
fp.group_id=1)
LEFT JOIN subscriptions AS s
ON (t.id=s.topic_id AND s.user_id=2)
WHERE (fp.read_forum IS NULL OR
fp.read_forum=1) AND
t.id=17 AND t.moved_to IS NULL
Zajímá mě proč se jednou používá INNER JOIN a podruhé LEFT JOIN.