Pergunta

Eu precisa para obter um título da tabela 2, tabela 2 tem título e a coluna id.A tabela 1 tem alguns dados e estes três colunas concatenadas maquiagem a identificação do que pode ser encontrado na tabela 1.

Eu usei CONCAT_WS() função e deu esta coluna de um nome de alias e precisa usar o Alias para o argumento(Pelo menos é o que eu entendi que eu precisava fazer)

Eu pensei que esta poderia ser uma simples associação esquerda, mas ainda não está funcionando para mim.

Esta é a minha 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;

Eu chegar em resultados para o correio, f_name, l_name, Qualidade e t1aid, mas o auxílio e group_name colunas da segunda tabela retornar null.

Foi útil?

Solução

Eu sinto que você não pode usar um alias na cláusula ON.Tente fazer

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

"Você pode usar o alias no GROUP BY, ORDER BY ou HAVING cláusulas para referir-se a coluna" (a partir de dev.mysql.com/doc/refman/5.0/en/problems-with-alias.html).

E "O conditional_expr usado com qualquer expressão condicional do formulário que pode ser usado em uma cláusula WHERE" (a partir de dev.mysql.com/doc/refman/5.1/en/join.html).

Assim como uma inferência lógica, você não está permitido o uso de aliases na cláusulas.

Outras dicas

tente usar uma subconsulta..ele vai como esta.........

ex.

SELECIONE tbl1.mail, tbl1.f_name, tbl1.l_name,tbl1.Qualidade, tbl1.t1aid,table_groups.ajuda, 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 em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top