三级分类,如果三级表中的字段为空(所属二级分类的主键twoID),那二级分类和一级分类中的数据就一起都读不出来,怎么办

qa1378723469 2016-07-18 04:05:58
SELECT
o.oneId,o.name onename,o.state onestate,o.way oneway,o.sorts onesorts,
tw.twoId,tw.name twoname,tw.state twostate,tw.sorts twosorts,tw.way twoway,
th.threeId,th.name threename,th.state threestate,th.sorts threesorts,th.way threeway
FROM barthreelevel th, bartwolevel tw ,baronelevel o
WHERE tw.twoId=th.twoId and tw.oneId=o.oneId;
就是三级菜单导航栏,如果第三级菜单的twoid为空,读出来的数据就为空,但是我任然要把第一级和第二级的菜单读出来,除非第三级菜单中有第二季菜单的主键的外键中有值,有没有更好的方式
...全文
125 4 打赏 收藏 举报
写回复
4 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
Abel_zz 2016-07-22
一般是如果3张表A,B,C,以A表为基础。则是 select * from a left join b on a.id=b.id left join c on a.id=c.id
  • 打赏
  • 举报
回复
一级表 left join 二级表 left join 三级表,如果没有数据会为空。你这种方法除非都有数据,不然会显示不出来。
  • 打赏
  • 举报
回复
用left jion
  • 打赏
  • 举报
回复
大头爱放假 2016-07-19
不是很明白,因为三级菜单如果没有二级菜单的id,数据库是无法知道三级菜单在哪个二级菜单中的。必须要有一个关联。
  • 打赏
  • 举报
回复
相关推荐
发帖
Web 开发
加入

8.0w+

社区成员

Java Web 开发
社区管理员
  • Web 开发社区
申请成为版主
帖子事件
创建了帖子
2016-07-18 04:05
社区公告
暂无公告