需要帮助INNER JOIN两个表格

时间:2012-06-18 13:24:14

标签: mysql

我有两张桌子:

表A:Clientes_consultas; 菲尔兹:

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

...

表B:meioscomunicacao;
菲尔兹:

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

在表格中,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

如果我将其更改为(这就是我想要的):

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'

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

提前致谢, 马里奥

1 个答案:

答案 0 :(得分: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”字段开始)。