2012-06-18 5 views
0

У меня есть 2 стола:Нужна помощь при ВНУТРЕННЕМ СОЕДИНЕНИИ две таблицы

ТАБЛИЦА A: Clientes_consultas; ПОЛЯ:

id_consulta  | int(11)  
meiocomunicacao | int  
caminhoresposta | int  

...

ТАБЛИЦА B: meioscomunicacao;
ПОЛЯ:

id_meiocomunicacao | int(11) 
descricao   | varchar(20) 

В Clientes_consultas таблице (meiocomunicacao и caminhoresposta) являются числами, которые представляют id_meiocomunicacao в meioscomunicacao таблице.

У меня есть этот запрос:

SELECT clientes_consultas.*, meioscomunicacao.descricao 
FROM clientes_consultas 
INNER JOIN meioscomunicacao ON meioscomunicacao.id_meiocomunicacao=clientes_consultas.caminhoresposta 
WHERE id_consulta=14 

Если изменить его (это то, что я хочу):

SELECT clientes_consultas.*, meioscomunicacao.descricao 
FROM clientes_consultas 
INNER JOIN meioscomunicacao ON meioscomunicacao.id_meiocomunicacao=clientes_consultas.caminhoresposta 
INNER JOIN meioscomunicacao ON meioscomunicacao.id_meiocomunicacao=clientes_consultas.meiocomunicacao 
WHERE id_consulta=14 

Это даст мне ошибку: Not unique table/alias: 'meioscomunicacao'

Как может Я разрешаю это? Любая помощь приветствуется.

Спасибо заранее, MARIO

ответ

5

Not unique table/alias сообщение об ошибке говорит вам, что нужно сделать: создать другой псевдоним для каждой ссылки «meioscomunicacao», как это:

SELECT clientes_consultas.*, mc1.descricao 
FROM clientes_consultas 
INNER JOIN meioscomunicacao mc1 ON mc1.id_meiocomunicacao=clientes_consultas.caminhoresposta 
INNER JOIN meioscomunicacao mc2 ON mc2.id_meiocomunicacao=clientes_consultas.meiocomunicacao 
WHERE id_consulta=14 

Обратите внимание, что вам необходимо указать если вы хотите mc1.descricao или mc2.descricao в результатах (т. е. из которого JOIN вы хотите поле «descricao»).

+0

Благодарим вас за быстрый и эффективный ответ. Это то, что я искал. Еще раз спасибо. С уважением, Mário – user1463719

+0

Mário, пожалуйста, прочтите следующее: http://meta.stackexchange.com/a/5235/149253 - спасибо вам, Бразилия! –