Tenho uma tabela de links, uma de tags e uma de links_tags
Queria saber a melhor forma de pesquisar os dados relacionados para que depois eu possa fazer uma paginação.
Antes de pensar na paginação eu uni as tabelas:
SELECT `L`.*, `T`.`nome` AS `t_nome`, `LT`.*, `L`.* FROM `tags` AS `T` RIGHT JOIN `links_tags` AS `LT` ON T.id = LT.tag_id RIGHT JOIN `links` AS `L` ON LT.link_id = L.id ORDER BY `L`.`id` ASC
Isso retornava vários registros iguais de link mas com as tags diferentes e na programação eu ajustava isso.
Para fazer paginação não funcionaria pois se eu quisesse listar 10 links por pagina e 1 link tivesse 10 tags, apenas ele seria mostrado.
O que penso atualmente é buscar 10 links da tabela de links e depois buscar as tags de cada link nas outras tabelas.
O problema: 10 links por pagina = 1 sql a mais para cada um.
Se for listar 100 links, já aumentaria mais ainda. Em um sistema com muitos usuários, geraria muitas querys.