mysql写left join时,如何使一条变多条

版权声明:本文为博主原创文章,欢迎转载,转载请注明作者、原文超链接 ,博主地址:https://blog.csdn.net/qq_31122833。 https://blog.csdn.net/qq_31122833/article/details/82384357
如果遇到
SELECT * FROM a AS a
LEFT JOIN b AS b ON a.bid=b.id
LEFT JOIN c AS c ON a.cid=c.id
LEFT JOIN d AS d ON a.did=d.id 
WHERE 1=1

这段Sql由于d表有多条关于a的数据时,会出现原本只有一条数据,变成多条数据,

这是因为在联b表时,没有加AND限制,可改写成:

SELECT * FROM a AS a
LEFT JOIN b AS b ON a.bid=b.id
LEFT JOIN c AS c ON a.cid=c.id
LEFT JOIN d AS d ON a.did=d.id AND te.vesting_date=(select max(vesting_date) from tbl_environment where sno=te.sno)
WHERE 1=1

猜你喜欢

转载自blog.csdn.net/qq_31122833/article/details/82384357
今日推荐