加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

mysql – 怎样一路行使UNION和GROUP_CONCAT

发布时间:2021-05-20 14:02:00 所属栏目:编程 来源:网络整理
导读:我碰着了在这种环境下行使UNION和GROUP_CONCAT的正确语法的题目: 我有4张桌子: base:主表是否有许多列. mm:行使tablenames字段指向下两个表的mm表. t1和t2存储相干的数据. base表中的记录可以通过mm表在t1和t2中有很多相干记录. 我在MySQL中建设一个VIEW

我碰着了在这种环境下行使UNION和GROUP_CONCAT的正确语法的题目:

我有4张桌子:

> base:主表是否有许多列.
> mm:行使’tablenames’字段指向下两个表的mm表.
> t1和t2存储相干的数据.

‘base’表中的记录可以通过mm表在t1和t2中有很多相干记录.

我在MySQL中建设一个VIEW,我必要将全部相干记录表现在一个用逗号脱离的列中.

这是根基的MySQL代码:

SELECT base.uid,t1.nombre_es
FROM base
INNER JOIN mm 
ON mm.uid_local=base.uid
INNER JOIN t1 
ON mm.uid_foreign=t1.uid WHERE mm.tablenames = 't1'

UNION

SELECT base.uid,t2.nombre_es
FROM base
INNER JOIN mm 
ON mm.uid_local=base.uid
INNER JOIN t2
ON mm.uid_foreign=t2.uid WHERE mm.tablenames = 't2'

提前叩谢.

我可以行使两个VIEWS,第一个行使上面的代码,名称为’viewtest’,第二个行使此代码:

SELECT base.uid,GROUP_CONCAT(DISTINCT vi.nombre_es ORDER BY vi.nombre_es SEPARATOR ',') as nombre

FROM base

INNER JOIN viewtest as vi
ON vi.uid=base.uid

GROUP BY uid

此刻的题目是?如安在一个视图中插手这两个视图? 最佳谜底 您可以行使查询中的派生表.接下来是一个怎样行使它们的示例.

SELECT GROUP_CONCAT( f ) 
FROM (
  SELECT 1 AS f  # <-- QUERY #1
  UNION 
  SELECT 2 AS f  # <-- QUERY #2
  UNION 
  SELECT 3 AS f  # <-- QUERY #3
) AS T

根基上,您可以将任何SELECT查询用道别名表.然后,您可以将所需的任何聚合函数应用于该别名查询.

(编辑:湖南网)

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

    热点阅读