需要帮助INNER JOIN两个表格

0 mysql

我有2张桌子:

表A:Clientes_consultas; 字段:

id_consulta     | int(11)     
meiocomunicacao | int      
caminhoresposta | int     
Run Code Online (Sandbox Code Playgroud)

...

表B:meioscomunicacao;
字段:

id_meiocomunicacao | int(11)
descricao          | varchar(20)
Run Code Online (Sandbox Code Playgroud)

在表中,Clientes_consultas(meiocomunicacao和caminhoresposta)是代表meioscomunicacao表中的id_meiocomunicacao的数字.

我有这个问题:

SELECT clientes_consultas.*, meioscomunicacao.descricao
FROM clientes_consultas
INNER JOIN meioscomunicacao ON meioscomunicacao.id_meiocomunicacao=clientes_consultas.caminhoresposta
WHERE id_consulta=14
Run Code Online (Sandbox Code Playgroud)

如果我把它改成(这就是我想要的):

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
Run Code Online (Sandbox Code Playgroud)

这会给我错误: Not unique table/alias: 'meioscomunicacao'

我该如何解决这个问题?任何帮助表示赞赏.

在此先感谢,Mário

J. *_*uni 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
Run Code Online (Sandbox Code Playgroud)

请注意,您需要在结果中指定是否需要mc1.descricao或mc2.descricao(即,您想从哪个JOIN"descricao"字段).