MySQL 带别名的内部联接

MySQL inner join w/ alias

所以这是我的 table DENUNCIAS

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

如您所见,我对同一个 table.

有双重引用

我想做的是 select (内部联接) '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'

我尝试了几种方法,但都没有结果。

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

提前致谢!

您创建 table 别名,然后必须在您的 select 列表中使用。 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;

我假设您的常用 table 确实包含 nombreCompleto 列。如果这是正确的,我认为问题是,您直接引用了 usarious table 而不是使用您创建的别名。因为您访问了 table 两次,所以您需要指定 SELECT 来自的别名。

外汇:

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;