Pregunta

Necesito obtener un título de la Tabla 2, la Tabla 2 tiene título y columna de identificación. La Tabla 1 tiene algunos datos y tres de estas columnas concatenadas, componen la identificación que se puede encontrar en la Tabla 1.

Función de Concat_WS () y dio a esta columna un nombre de alias y necesitamos usar el alias para el argumento en (al menos esto es lo que entendí que necesitaba hacer)

Pensé que esto podría ser un simple ajo a la izquierda, pero aún no funciona para mí.

Esta es mi consulta

SELECT
    table_openers.mail,
    table_openers.f_name,
    table_openers.l_name,
    table_openers.Quality,
    CONCAT_WS('-',
            table_openers.esp,
            table_openers.acc,
            table_openers.group) as 't1aid',
    table_groups.aid,
    table_groups.group_name
FROM
    lance_mailstats.table_openers
        LEFT JOIN
    lance_mailstats.table_groups ON table_groups.aid = t1aid;

Obtuve resultados para correo, F_NAME, L_NAME, Calidad y T1AINE, pero las columnas de ayuda y grupo_name de la segunda tabla devuelven null.

¿Fue útil?

Solución

Siento que no puede usar un alias en la cláusula ON. Intenta hacer

LEFT JOIN
    lance_mailstats.table_groups ON table_groups.aid = CONCAT_WS('-',
            table_openers.esp,
            table_openers.acc,
            table_openers.group);

"Puede usar el alias en grupo por, ordenar o tener cláusulas para referirse a la columna" (desde dev.mysql.com/doc/refman/5.0/en/problems-with-alias.html).

y "el CondicionAl_expr que se usa con ON es cualquier expresión condicional del formulario que se puede usar en una cláusula WHERE" (de dev.mysql.com/doc/refman/5.1/en/join.html).

para una inferencia lógica que no está permitido usar alias en cláusulas.

Otros consejos

Intenta usar una subconsulta .. va así .........

ex.

seleccione tbl1.mail, tbl1.f_name, tbl1.l_name, tbl1.qualidad, tbl1.t1aid, table_groups.aid, table_groups.group_name

    FROM

       (SELECT
              table_openers.mail,
              table_openers.f_name,
              table_openers.l_name,
              table_openers.Quality,
                CONCAT_WS('-',
                   table_openers.esp,
                   table_openers.acc,
                   table_openers.group) as 't1aid',
             FROM
             lance_mailstats.table_openers )tbl1

       LEFT JOIN
       lance_mailstats.table_groups ON table_groups.aid = tbl1.t1aid;

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top