理解できません。私はもう試した:
SELECT
table1.name, CONCAT( country, '.', id ) AS table1.code,
table2.name
FROM tabel1
LEFT OUTER JOIN
table2 ON ( table1.code = table2.code )
このスキーマがあるので、country
とid
を組み合わせる必要があります。country.id
table2.code
前もって感謝します。
私があなたが正しいと理解しているなら、あなたはこのようなものを必要とするかもしれません
SELECT t1.name t1_name,
t2.name t2_name
FROM table1 t1 LEFT JOIN
table2 t2 ON CONCAT(t1.country, '.', t1.id ) = t2.code
結合のパフォーマンスが低いために髪を引っ張っている人のON CONCAT()
場合:文字列以外の値をキャストするCHAR
と、天文学的にパフォーマンスが向上します。
SELECT t1.name t1_name,
t2.name t2_name
FROM table1 t1 LEFT JOIN
table2 t2 ON CONCAT(t1.country, '.', CAST(t1.id AS CHAR) ) = t2.code
説明は、 CONCAT()関数のMySQLドキュメントに表示されません。
…すべての引数が非バイナリ文字列の場合、結果は非バイナリ文字列になります。引数にバイナリ文字列が含まれている場合、結果はバイナリ文字列になります。数値引数は、同等の2進文字列形式に変換されます。それを避けたい場合は、明示的な型キャストを使用できます…</ p>
これの功績はAurimasMikalauskasにあります。