MySQL内连接w /别名

时间:2016-01-24 00:20:47

标签: mysql sql select join alias

所以这是我的桌子DENUNCIAS

id_denuncia, 
id_categoria, 
id_fecha, 
email_denunciante -- FK table usuarios, 
email_denunciado  -- FK table usuarios, 
descripcion, 
fecha

如您所见,我对同一张表有双重引用。

我要做的就是选择(内部联接)' usuarios.nombreCompleto'两次,一次用于' email_denunciante'另一个用于' email_denunciado' 。这是我到目前为止的地方:

select 
categorias.nombreCorto as 'Categoria', 
fechas.circuito as 'Fecha', 
usuarios.nombreCompleto as usuDenunciante, 
usuarios.nombreCompleto as usuDenunciado,
denuncias.descripcion as 'Detalle', 
denuncias.fecha as 'Enviada el'
from denuncias
inner join categorias on denuncias.id_categoria = categorias.id_categoria
inner join fechas on denuncias.id_fecha = fechas.id_fecha
inner join usuarios as usuDenunciante on denuncias.email_denunciante = usuarios.email
inner join usuarios as usuDenunciado on denuncias.email_denunciado = usuarios.email;

这是我得到的错误:

Error Code: 1054. Unknown column 'usuarios.nombreCompleto' in 'field list'

我尝试了几种带有负面结果的方法。

由于它是一个sintaxis错误,而不是逻辑,我决定不翻译代码。

提前致谢!

2 个答案:

答案 0 :(得分:0)

您创建表别名,必须在选择列表中使用then。 usuarios必须为usuDenuncianteusuDenunciado

试试这个:

select categorias.nombreCorto as 'Categoria', 
       fechas.circuito as 'Fecha', 
       usuDenunciante.nombreCompleto as usuDenunciante, 
       usuDenunciado.nombreCompleto as usuDenunciado,
       denuncias.descripcion as 'Detalle', 
       denuncias.fecha as 'Enviada el'
  from denuncias
          inner join categorias 
                  on denuncias.id_categoria =  categorias.id_categoria
          inner join fechas 
                  on denuncias.id_fecha = fechas.id_fecha
          inner join usuarios as usuDenunciante 
                  on denuncias.email_denunciante = usuDenunciante.email
          inner join usuarios as usuDenunciado 
                  on denuncias.email_denunciado = usuDenunciado.email;

答案 1 :(得分:0)

我假设您的各种表格确实包含nombreCompleto列。如果这是正确的,我认为问题是,你直接引用了这个表,而不是使用你所做的别名。因为您访问该表两次,所以需要指定从哪个别名中选择SELECT。

Fx的:

SELECT categorias.nombreCorto as 'Categoria',
fechas.circuito as 'Fecha',
usuDenunciante.nombreCompleto.as usuDenunciante,
usuDenunciado.nombreCompleto as usuDenunciado,
denuncias.descripcion as 'Detalle',
denuncias.fecha as 'Enviada el'
from denuncias inner join categorias on denuncias.id_categoria = categorias.id_categoria
inner join fechas on denuncias.id_fecha = fechas.id_fecha
inner join usuarios as usuDenunciante on denuncias.email_denunciante = usuarios.email
inner join usuarios as usuDenunciado on denuncias.email_denunciado = usuarios.email;