mysql数据库 我该如何做关联查询

xy825459556 2018-01-05 04:39:19

a表有字段 id,name
b表有字段 id,aid(存放多个a表主键集合以,号分割)
这样怎么做关联查询,查询出所有字段
a表数据
id name
1 大
2 中
3 小
b表数据
id aid
1 1,2,3
2 1,2
3 1
...全文
1467 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
Phil_Jing 2018-04-30
  • 打赏
  • 举报
回复
建议left join
  • 打赏
  • 举报
回复
用全连接:
select * from a,b where a.id = b.id
a90434957 2018-04-28
  • 打赏
  • 举报
回复
我建议你先学一下关系数据库的知识? 这种查询会减慢数据库. 如果说这是考题的话 就是 截取字符串再使用子查询了
Hard_Z 2018-04-27
  • 打赏
  • 举报
回复
可以用内联查询 或者在sql语句的地方进行操作 先把b表aid根据”,“切割 如何来匹配
浮云若水 2018-01-30
  • 打赏
  • 举报
回复
select b.id,GROUP_CONCAT(name) from testa a ,testb b where FIND_IN_SET(a.id,b.aid) group by b.id

不知道是不是你想要的
无聊的上午 2018-01-30
  • 打赏
  • 举报
回复
表设计有问题 aid存的应该是a表id的集合的字符串,就需要分割字符串再进行查询,很麻烦,而且这里这样写就不能用连接查询,而要用子查询,将子查询出来的结果 也就是aid进行字符串分割后再代入a表进行查询,非常麻烦而且也不推荐(子查询会增加查询时间,增加消耗的内存) 把表改一下比较好 使用一个中间表比较好
浮云若水 2018-01-30
  • 打赏
  • 举报
回复
find_in_set()
willing2017 2018-01-27
  • 打赏
  • 举报
回复
没有你这种需求和写法
无聊的上午 2018-01-26
  • 打赏
  • 举报
回复
select * from a,b where a.id=b.id select * from a (left|right|inner) join b on a.id=b.id
Ricky_Damn 2018-01-26
  • 打赏
  • 举报
回复
select a.* , b.*  from a left join b on a.id = b.id
xy825459556 2018-01-08
  • 打赏
  • 举报
回复
qq_41606469 2018-01-08
  • 打赏
  • 举报
回复
打发好的发挥地方好的发挥地方涣发大号
DongXu Xu 2018-01-08
  • 打赏
  • 举报
回复
打错了,是b.id
DongXu Xu 2018-01-08
  • 打赏
  • 举报
回复
select a.id,a.name,b.in from a,b 是这样嘛?我也在学SQL
dong_19890208 2018-01-08
  • 打赏
  • 举报
回复
3楼说的对
qq_35942223 2018-01-05
  • 打赏
  • 举报
回复
觉得这样设置表有问题, b表还不如 1 1 1 2 1 3 2 1 2 2 这样用联合主键
hp961218 2018-01-05
  • 打赏
  • 举报
回复
https://www.cnblogs.com/gsk99/archive/2011/06/14/2080573.html, 这是截取字符串函数用法,可以先把B表里面的id集合切割,再和A表ID关联,不就可以查询数据
qq_40352742 2018-01-05
  • 打赏
  • 举报
回复
不太明白你所表述的问题,是问要怎么两张表联合查询? 这样直接用sql语句进行,左、右、内联合查询都可以做到阿

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧