我有两张桌子:
表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'
我该如何解决这个问题?任何帮助表示赞赏。
提前致谢, 马里奥
答案 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”字段开始)。