如何在MySQL中选择具有左联接表的上一条记录?
我正在努力使以下各项发挥作用:如何在MySQL中选择具有左联接表的上一条记录?,mysql,select,left-join,records,Mysql,Select,Left Join,Records,我正在努力使以下各项发挥作用: # prev SELECT klha.buyerID < PARAMETER_1 FROM agents AS v LEFT JOIN seller_authorized AS klhs ON klhs.agent= v.agentID AND klhs.iln = v.seller AND v.`status` = 'auth' LEFT JOIN cust_list AS
# prev
SELECT klha.buyerID < PARAMETER_1
FROM agents AS v
LEFT JOIN seller_authorized AS klhs
ON klhs.agent= v.agentID
AND klhs.iln = v.seller
AND v.`status` = 'auth'
LEFT JOIN cust_list AS klha
ON klha.buyerID = klhs.userID
AND klha.accountNo = klhs.accountNo
WHERE v.iln = PARAMETER_2
AND klhs.acccountNo IS NOT NULL
ORDER BY klha.buyerID
LIMIT 1
;
结束
左连接正在工作,因为我正在另一个过程中使用它们来选择所有相关记录。问题在于我试图选择上一条记录
我正在传递一个buyerID,需要返回上一条记录的id
问题:
有人能告诉我正确的语法吗
编辑:
如果我在MySQL中运行这个,我将得到0作为结果集
谢谢
解决方案:
让它像这样工作:
# prev
SELECT klha.buyerID
FROM agents AS v
LEFT JOIN seller_authorized AS klhs
ON klhs.agent= v.agentID
AND klhs.iln = v.seller
AND v.`status` = 'auth'
LEFT JOIN cust_list AS klha
ON klha.buyerID = klhs.userID
AND klha.accountNo = klhs.accountNo
WHERE v.iln = PARAMETER_2
AND klhs.acccountNo IS NOT NULL
AND klha.buyerID < PARAMETER_1
ORDER BY klha.buyerID
LIMIT 1
;
比想象的容易:-谢谢@Henrique Ordine如果我正确理解了您的需要,将此条件添加到where子句中应该可以实现以下目的: 和klha.buyerID=从代理中选择maxbuyerID,其中buyerID<参数_1 像这样:
SELECT klha.buyerID
FROM agents AS v
LEFT JOIN seller_authorized AS klhs
ON klhs.agent= v.agentID
AND klhs.iln = v.seller
AND v.`status` = 'auth'
LEFT JOIN cust_list AS klha
ON klha.buyerID = klhs.userID
AND klha.accountNo = klhs.accountNo
WHERE v.iln = PARAMETER_2
AND klhs.acccountNo IS NOT NULL
and klha.buyerID = (select max(buyerID) from agents
where buyerID < PARAMETER_1)
ORDER BY klha.buyerID
LIMIT 1
啊好的。我不能只是在我的初始选择,可以吗?对不起,我不理解你的问题。做了一些调整。见上文。谢谢欢迎我很高兴能帮上忙。