Ir para conteúdo

Arquivado

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

ze_violeiro

INNER JOIN em duas tabelas e MySQL 5.1

Recommended Posts

Olá pessoal, Vejam só tenho uma consulta que funciona perfeitamente no mysql 4.x.x e no mysql 5.1 me da problemas, então como é o 5 que ta no servidor tenho que me virar, só preciso de uma forcinha :D$sql = "SELECT materia.materiaID as 'materiaID',materia.colunaID as 'colunaID',materia.colunistaID as 'colunistaID',materia.titulo as 'titulo',colunas.titulo as 'tituloColuna',colunistas.nome as 'nome', colunistas.foto_pequena as 'foto_pequena' FROM materia INNER JOIN (colunistas,colunas) ON materia.colunistaID = colunistas.colunistaID and materia.colunaID = colunas.colunaID ORDER BY RAND() Limit 5 ";essa eh a consulta, nao da erro nenhum só nao retorna resultados, no mysql 4.x.x retorna.valeu

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá, Zé!

 

Acho que o erro está no uso das aspas simples, pois elas determinam uma string... no MySQL, quando você vai delimitar o nome de um campo ou tabela, o correto é utilizar um `. No seu caso, em que não há o uso de caracteres diferentes de letras, números ou "_" nos nomes das tabelas e campos, esse caractere poderia ser ocultado. Eu montaria a consulta da seguinte forma:

 

SELECT
m.materiaID as materiaID,
m.colunaID as colunaID,
m.colunistaID as colunistaID,
m.titulo as titulo,
cln.titulo as tituloColuna,
clt.nome as nome,
clt.foto_pequena as foto_pequena
FROM
materia m,
colunistas clt,
colunas cln
WHERE
m.colunistaID = clt.colunistaID
AND m.colunaID = cln.colunaID
ORDER BY RAND()
LIMIT 5

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.