ну это то понятно... а с условием versions.mods
SELECT mod_ver.mod FROM mod_ver WHERE mod_ver.ver = $id
mod_ver — таблица связи модов и версий.
Аналогично adm_mod — администраторы и моды (При такой организации можно ещё выставлять каждому пользователю права на доступ к конкретному елементу)
Ключ поставил примари на оба поля(так, вроде, быстрее?).
Хе, хе. Вот как мой запросик разросся. Надеюсь, это будет быстрее аналогичного с LIKE:
[sql]SELECT mods.* FROM mods
LEFT JOIN trans_mods ON mods.id=trans_mods.id
WHERE trans_mods.id IS NULL AND mods.id IN (SELECT mod_ver.mod FROM mod_ver WHERE mod_ver.ver = $id) AND mods.id IN (SELECT adm_mod.mod FROM adm_mod WHERE adm_mod.adm = ".$portal->member['id'].")[/sql]
Чаше всего будет использоваться этот:
[sql]SELECT * FROM `trans_mods`,mods WHERE mods.id=trans_mods.id AND mods.active = 1 AND mods.id IN (SELECT mod_ver.mod FROM mod_ver WHERE mod_ver.ver = {$ver['id']})[/sql]
Что должно оказаться быстрее:
JOIN
[sql]SELECT `members_display_name` FROM `ibf_members` LEFT JOIN adm_prj ON ibf_members.id=adm_prj.adm WHERE prj =?[/sql]
или подзапрос
[sql]SELECT `members_display_name` FROM `ibf_members` WHERE id IN (SELECT adm FROM `adm_prj` WHERE prj =?)[/sql]