LEFT JOIN duas vezes na mesma tabela?
OLá pessoal,
Tenho uma tabela que é responsável pela associação de palavras que são sinônimos. Vejam:
CREATE TABLE `guia_sinonimos` (
`sinonimo_id` int(11) NOT NULL AUTO_INCREMENT,
`sinonimo_palavra1` int(11) NOT NULL,
`sinonimo_palavra2` int(11) NOT NULL,
PRIMARY KEY (`sinonimo_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1;
`sinonimo_palavra1` e `sinonimo_palavra2` fazem referência ao código de um campo da tabela guia_palavras.
Bem estou tentando exibir na tela os sinônimos da forma abaixo (uma palavra ao lado da outra):
carro - automóvel
moto - motocicleta
bicicleta - bike
etc...
O problema é que não sei como estruturar a query de modo que seja feito um JOIN para o campo 'sinonimo_palavra1' e outro para 'sinonimo_palavra2' (atribuição correta de variáveis).
Eu estava tentando desta forma:
"SELECT *,
(SELECT * FROM guia_sinonimos LEFT JOIN guia_palavras ON palavra_id = sinonimo_palavra1) as p1,
(SELECT * FROM guia_sinonimos LEFT JOIN guia_palavras ON palavra_id = sinonimo_palavra2) as p2
FROM guia_sinonimos ORDER BY sinonimo_palavra1 ASC"
Entretanto sem sucesso (além da lógica estar errada, é retornado o erro "Operand should contain 1 column(s)", que eu sei que significa que foram retornados muitos resultados para uma só saída).
Enfim, busco ajuda dos amigos nesta resolução. Alguma idéia?
Discussão (15)
Carregando comentários...