2016-09-21 5 views
0

私は結合を実行するときにclientsテーブルのすべてのクライアントIDに番号100000を追加する必要があります。 SELECT(100000 + c.id) AS c.idが正常に動作しているようですが、LEFT JOINクライアントのcp.client_id =(100000 + c.id)の結合でエラーが発生します。MySQLは2つのテーブルを1つの列で結合します。これは数字で増分する必要があります。

クエリは次のようになります。

SELECT p.id, p.date, p.document, (100000 + c.id) AS c.id, c.name FROM payments p LEFT JOIN clients c ON p.client_id = (100000 + c.id) WHERE p.date < CURRENT_DATE

は、私はこれを達成することができます方法はありますか?

答えて

3

は、エイリアス(idとないc.id)

SELECT p.id, p.date, p.document, (100000 + c.id) AS id, c.name 
FROM payments p 
LEFT JOIN clients c ON p.client_id = 100000 + c.id 
WHERE p.date < CURRENT_DATE 
+0

どうやら 'p.client ON = c.id + 100000'作品にP.idするp.client_idを変更します。 – Cosmin

+0

@Cosmin私はこれがon条件ではなく、エイリアスに関連する事実と考えています。あなたはc.cnidというエイリアスをtable.columnと同じように使用しています。これは左の結合でエラーを起こします – scaisEdge

+0

@コスミン..もし私の答えが正しければ、受け入れられたとマークしてください。 – scaisEdge

0

からテーブル名を削除してみてくださいc.id 1は、100,001または1,000,001になることになっていますか? (コンマは必要ありません。私にはゼロが多すぎます)

これは最初のはずですが、私はあなたの問題が何なのか分かりません。 2番目の場合は、+

+0

これは100001になっていますが、 'ON p.client_id = 100000 + c.id'の代わりに' ON p.client = c.id + 100000'を実行して解決しました。 – Cosmin

0

の代わりに連結する必要があります.Pidまたはp.client_idですか?

おそらく参加

関連する問題