Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Guinsilva

[Resolvido] Ordenar resultados de tabelas diferentes em ordem alf

Recommended Posts

Olá, a alguns dias eu postei uma dúvida sobre um sistema que estou fazendo que envolve mais de uma tabela.

 

Como havia falado anteriormente, nele há diversas categorias diferentes e cada uma delas possui uma tabela própria no banco de dados. Para que pudesse organizar todas essas tabelas eu criei uma outra chamada "sumario" para guardar o nome da categoria e o id das demais.

 

Minha dúvida anterior foi resolvida, porém eu estava organizando a tabela baseada em dados que havia na tabela de sumário (que no caso era id do mesmo) só que o cliente quer que eu organize de acordo com o título dos artigos.

 

Há alguma maneira de unir as colunas de título de diversas tabelas diferentes e organiza-las em ordem alfabética?

 

Por hora o código está assim:

 

$sql = "SELECT * FROM sumario, coreografias, dancas, escolas WHERE 
(
       (
               coreografias.id_autor_coreografias = '". addslashes($_SESSION["id_usuario"]) ."' OR
               coreografias.id_editor_coreografias = '". addslashes($_SESSION["id_usuario"]) ."'
       ) AND
       sumario.id_categoria_sumario = coreografias.id_coreografias AND
       sumario.categoria_sumario = coreografias.categoria_coreografias 
) OR 
(
       (
               dancas.id_autor_dancas = '". addslashes($_SESSION["id_usuario"]) ."' OR
               dancas.id_editor_dancas = '". addslashes($_SESSION["id_usuario"]) ."'
       ) AND
       sumario.id_categoria_sumario = dancas.id_dancas AND
       sumario.categoria_sumario = dancas.categoria_dancas
) OR 
(
       (
               escolas.id_autor_escolas = '". addslashes($_SESSION["id_usuario"]) ."' OR
               escolas.id_editor_escolas = '". addslashes($_SESSION["id_usuario"]) ."'
       ) AND
       sumario.id_categoria_sumario = escolas.id_escolas AND
       sumario.categoria_sumario = escolas.categoria_escolas
)
GROUP BY sumario.id_sumario
ORDER BY sumario.data_postagem_sumario DESC, sumario.id_sumario DESC";

 

E o nome das coluna de título estão respectivamente em cada tabela como "titulo_coreografias", "titulo_dancas" e "titulo_escolas".

Compartilhar este post


Link para o post
Compartilhar em outros sites

O que achei sobre UNION ele une os campos que possua nomes iguais, mas no banco de dados os campos possuem nomes únicos ("titulo_coreografias", "titulo_dancas" e "titulo_escolas"). Tem alguma maneira de uni-los mesmo tendo nomes diferentes?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim, renomeia os campos no select:

 

"SELECT titulo_coreografias as titulo
  FROM coreografias
  WHERE ...
UNION ALL
SELECT titulo_dancas as titulo
 FROM dancas
  WHERE ...
UNION ALL
SELECT titulo_escolas as titulo
 FROM escolas 
  WHERE ...
ORDER BY titulo

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.