新手求教多表查询以及行转列

zhoujiao2008 2014-10-10 05:05:24
表A的数据为
表B的数据位
想要的结果是:如果orgI是ALL就需要显示全部的部门名称,部门名字间用逗号隔开,
如果是具体的ID就需要显示出来关联的部门名称。
效果大概是:
newsId orgName
637 信息部,研发部
638 信息部,研发部,财务部
639 信息部,研发部,财务部,test1

其实639是显示全部部门的信息。

本人新手,SQL用的不多,求各位大虾们指点,谢谢了,工作急需,没时间研究,所以只要寻求大家帮助了!!!
...全文
299 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhoujiao2008 2014-10-15
  • 打赏
  • 举报
回复
谢谢大家帮忙了,我用子查询解决了,不过行转列给了我很好的建议,以前都用SQL server习惯了,所以MYSQL写的时候有些乱了。
roundman 2014-10-13
  • 打赏
  • 举报
回复

select B.newsId,group_concat(a.orgname) from B
inner join A
on B.orgId = case when B.orgId = 'ALL' then B.orgId else A.orgId end
group by B.newsId
ACMAIN_CHM 2014-10-10
  • 打赏
  • 举报
回复
http://blog.csdn.net/acmain_chm/article/details/4283943 MySQL交叉表 在某些数据库中有交叉表,但在MySQL中却没有这个功能,但网上看到有不少朋友想找出一个解决方法,特发贴集思广义。http://topic.csdn.net/u/20090530/23/0b782674-4b0b-4cf5-bc1a-e8914aaee5ab.html?96198现整理解法如下:数据样本: create table tx( id int primary key, c1 c...
zhoujiao2008 2014-10-10
  • 打赏
  • 举报
回复
你说的这个方法我试过了,就是不知道数据库里面存的ALL怎么处理。
chengchow2001 2014-10-10
  • 打赏
  • 举报
回复
select b.newsid,group_concat(a.orgname) from b left join a on b.orgid=a.orgid group by b.newsid
zhoujiao2008 2014-10-10
  • 打赏
  • 举报
回复
自己先顶一下,免得大虾们都不来了~~~~

56,677

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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