質問

表2からタイトルを取得する必要がある、表2にはタイトルとID列があります。 表1は、表1にあり得るIDを合成するデータがいくつかのデータと合成されたものです。

concat_ws()関数を使用し、この列をエイリアス名にし、on引数のエイリアスを使用する必要があります(少なくともこれは私がやる必要があるものです)

これはシンプルな左の結合になる可能性があると思いましたが、それでも私のために働いていません。

これは私の照会

です
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;
.

メール、f_name、l_name、alies、t1aidの結果を取得しますが、2番目のテーブルのaid_name列がnullを返します。

役に立ちましたか?

解決

ON句にエイリアスを使用できないように感じます。

をやってみてください
LEFT JOIN
    lance_mailstats.table_groups ON table_groups.aid = CONCAT_WS('-',
            table_openers.esp,
            table_openers.acc,
            table_openers.group);
.

"グループのエイリアス、order by、または列を参照するか、または句を参照することができます(dev.mysql.com/doc/refman/5.0/en/en/jps-with-alias.htmlから)。

および "ONで使用される条件AXPRは、where句で使用できる形式の条件式表現です(dev.mysql.com/doc/refman/5.1/join/join.htmlから)。

では論理的な推論として、句にエイリアスを使用することはできません。

他のヒント

副問合せを使用してみてください。 それはこのようになります.........

ex.

選択 tbl1.mail、tbl1.f_name、tbl1.l_name、tbl1.quality、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;
.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top