mysql中外键查询,求sql语句

一张一级菜单表,一张二级菜单表,外键在二级菜单表字段fid
请问如何在查到所有一级菜单的同时,得到对应的二级菜单,江湖救急,大家帮帮我这个菜鸟学生(老师不准我们用框架,用jdbc我也是醉了,我sql学的不是很好)

4个回答

用多表关联查询,大致逻辑是这样:

select t1.tname,t2.tname
from table1 t1 inner join table2 t2 on t1.tid=t2.fid;

具体还得根据这两表的实际情况而定。

参考自:
mysql join语法及优化 http://www.data.5helpyou.com/article209.html

qq_27922023
四川码匠 显示是这样的 一级菜单一 二级菜单一 一级菜单一 二级菜单二 一级菜单一 二级菜单三 一级菜单二 二级菜单四 一级菜单二 二级菜单五 我理想中是 一级菜单一 二级菜单一 二级菜单二 二级菜单三 一级菜单二 二级菜单四 二级菜单五
4 年多之前 回复
qq_27922023
四川码匠 你好,我用关联查询出来了,但是有一个问题,就是循环在页面时,每一个二级菜单前都有一个相同的一级菜单,怎么只保留一个一级菜单,多个二级菜单呀,用的jstl
4 年多之前 回复

简单处理
假设从数据库返回的是List> sqlResult,使用是一个Map> retList,迭代sqlResult,将key(一级菜单)
放到retList的key中,value(一级菜单对应的二级菜单)放到List

使用函数start with connect by prior

应该使用多表联查 有的一级菜单可能没有对应的二级菜单 需要采用left join
select t1.需要的属性, t2.需要的属性 from 一级表 t1 left join 二级表 t2 on t1.id=t2.pid

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐