2016-09-21 63 views
0

我需要數十萬添加到所有客戶端的ID在clients表時,我執行加入遞增一列連接兩個表。似乎(100000 + c.id) AS c.idSELECT工作正常,但我上`LEFT JOIN客戶C對p.client_id =(100000 + c.id)」加入一個錯誤。MySQL的通過需要由一些

查詢看起來是這樣的:

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

顯然'ON p.client = c.id + 100000'工作。 – Cosmin

+0

@Cosmin我認爲這是不相關的condtion,但在涉及到別名..你有別名使用c.id的事實是一樣的TABLE.COLUMN ..這導致在左加入 – scaisEdge

+0

錯誤@ Cosmin ..以及如果我的回答是正確的,請將其標記爲已接受 – scaisEdge

0

是c.id 1應該成爲100,001或1,000,001? (我知道是不是需要逗號。有太多的零對我來說)

如果它應該是第一個,我不知道你的問題是什麼。如果是第二個,你應該Concat的,而不是+

+0

它有可能成爲100001,但我解決它做'ON p.client = c.id + 100000'取代'ON p.client_id = 100000 + c.id'。 – Cosmin

0

它是P.id或p.client_id ????

也許在加入時將p.client_id更改爲P.id