加入收藏 | 设为首页 | 会员中心 | 我要投稿 衡阳站长网 (https://www.0734zz.cn/)- 数据集成、设备管理、备份、数据加密、智能搜索!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

mysql加入问题

发布时间:2021-03-18 19:47:41 所属栏目:MySql教程 来源:网络整理
导读:table a-------------------------------------------------id name wishlist1 wishlist2 wishlist31 john 1 2 32 paul 4 5table b--------------------------------------------------id goods1 car2 aircraft3 bicycle4 motorbike5 ipadresult i want to g

table a
-------------------------------------------------
id   name     wishlist1    wishlist2     wishlist3

1    john      1              2            3
2    paul      4              5


table b
--------------------------------------------------
id    goods

1     car
2     aircraft
3     bicycle
4     motorbike
5     ipad


result i want to get
---------------------------------------------------
john    car        aircraft    bicycle
paul    motorbike  ipad

我怎么能得到这个结果?
(在mysql中) 最佳答案 这最多可输出3个愿望(如果没有愿望,则在愿望列中显示空值)

select
  name,g1.goods as wish1,g2.goods as wish2,g3.goods as wish3
from tablea a
left join tableb g1.id on g1.wishlist1
left join tableb g2.id on g1.wishlist2
left join tableb g3.id on g1.wishlist3

这可能会更好,如果你不介意以逗号分隔的愿望清单,那就更好了:

select
  name,group_concat(goods) as wishes
from tablea a
left join tableb b on b.id in (a.wishlist1,a.wishlist2,a.wishlist3)
group by name;

这将输出:

name  |  wishes
------|----------------------
john  |  car,aircraft,bicycle
paul  |  motorbike,ipad

(编辑:衡阳站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读