mysql 查询问题求助

现在我有两张表,如下,
表1:图片描述 表2:图片描述

我要如何才能
从表1中把padno字段的值的前缀跟 表2中padgroup字段的值匹配的数据一次性全部查询出来,
想用 join + like 实现,但是一直实现不了啊

阅读 2.1k
2 个回答
SELECT * FROM 
(
    SELECT 
        base2.id,
        base2.padno,
        base1.padgroup 
    FROM base2 
    LEFT JOIN base1 
    ON base2.padno LIKE CONCAT(base1.padgroup,"%") 
    ORDER BY padgroup DESC
) as temp 
GROUP BY temp.padno ;

用子查询将padno与padgroup对应起来,然后倒序排就可以得出group较为长的在上面,此时进行group by得出结果,如果还有需要就在group by 后面加入新的order by

再来和join+like的版本

SELECT * FROM `a2` INNER JOIN `a1` ON a1.padno like concat(a2.padgroup, '%');
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题