mysql查询

樱木花道VS康 发布于 2018/09/25 10:10
阅读 241
收藏 0

学生表:id、age、name、cid四个字段;主键自增,简称表a

颜色表:(不是固定几个颜色,不是字典表):id、color;id自增(简单举例子,颜色不是简单字典表),简称表b;

a表数据类似如下:

1 12 张三 1,2,3,4

2 25 李四 4,5

3 32 王五 7,8,9

b表数据类似如下:

1 blue

2 yellow

3 red

4 black

5 blue

6 。。。

要求:查询出a表姓名,以及喜欢的颜色(cid为b表主键,有的学生cid为空)

该怎么查询?数据库结构就这样了,改不了了,,,,

 

 

 

加载中
0
langziswa
langziswa

select id,age,name,(select group_concat(color) from testb where FIND_IN_SET(id,cid)) from testa

樱木花道VS康
樱木花道VS康
牛B,非常感谢!3q3q3q3q3q3q
0
无愠无殇
无愠无殇
表b全表查询出来,放map, 然后表a查询数据循环 cid字段,
0
我不会武术
使用a表的cid模糊匹配b表的cid
0
开源中国首席不想说话
开源中国首席不想说话

了解一下  左连接 右连接 

0
取个特别的名字
取个特别的名字
a{ int id; //primary key int age ; String name ; int cid ; }; b{ int id;//primary key String color; }; Select`name`,`color` From `a` Left Join `b` On `a`.`cid`=`b`.`id` Where (`a`.`cid`>0)
0
木九天
木九天

面试官考的主要是cid,因为为空,所以在左连接谁做主表谁做副表最这个结果有影响,cid是最重要的理解!切记!

樱木花道VS康
樱木花道VS康
好的谢谢,这是我们项目中的一个类似的数据库结构,对于左右连接,我发现我工作中都是左连接,回头我深入了解下,xiexie!
0
魔力猫
魔力猫

谁写成这样,我抽他。

樱木花道VS康
樱木花道VS康
哈哈,大佬,,,
返回顶部
顶部