MySQL的通过需要由一些

问题描述:

我需要数十万添加到所有客户端的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

有没有什么办法可以做到这一点?

尝试从别名删除表名(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

是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

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

也许在加入时将p.client_id更改为P.id