精华内容
下载资源
问答
  • 最近把原来开发的一个小项目重新找出来,改为分层数据访问结构,并且优化了数据库设计,去除了很多冗余的表,采用比较高效的控制结构,但在今天就遇到了问题: 现有表: G(GID, abID, AID, BID) A(AID, ANAME) ...

          最近把原来开发的一个小项目重新找出来,改为分层数据访问结构,并且优化了数据库设计,去除了很多冗余的表,采用比较高效的控制结构,但在今天就遇到了问题:

          现有表:

          G(GID, abID, AID, BID)

          A(AID, ANAME)

          B(BID, BNAME)

          S(SID, SNAME)

          AB(abID, SID, Content)

    其中表S是用来存储类别的,现在想通过数据库查询返回如下结果

     

          ANAME   BNAME   S1NAME   S2NAME  ......  SnNAME(S表中的类别,内容为对应的Content值)

     

          原先老系统的做法是对于S中的类型建立n张表存储,但是这样不便于扩展,现在为了适应S类别动态增加的要求,就改为数据库存储类别的方式,但是这样的做法带来了问题,首先就是如何将一个表(AB)中的不同SID的数据划分为单独的列,并且在一次查询中取出显示在一个视图当中。

          仔细想了一下只能使用查询连接(JOIN)的方法,必须构造如下的语句:

     

    select g.GID, a.ANAME as aName , b.BNAME as bName                                            ---固定语句1
    , ab1.Content as S1NAME  , ab2.Content as S2NAME  , ab3.Content as S3NAME    ---构造语句1 


    from                                                                                                                          ---固定语句2
    (((((G g     left JOIN     A      a     ON      g.AID   =   a.AID)                                          ---构造语句2
    left JOIN   B   b   ON (g.BID = b.BID))                                                                        ---固定语句3


    left JOIN AB ab1 ON (g.abID = ab1.abID       and      ab1.SID     =    S1))                 ---构造语句3
    left JOIN AB ab2 ON (g.abID = ab2.abID       and      ab2.SID     =    S2))                  ---构造语句4

    left JOIN AB ab3 ON (g.abID = ab3.abID       and      ab3.SID     =    S3))                  ---构造语句5

    where 其他限制条件                                                                                                     ---其他语句

     

          此语句用到了多表的LEFT JOIN连接; 

          想要达到检索目标就必须通过程序构造如以上的SQL语句,本人的心得如下,将以上SQL语句分段固定语句1-3以及其他语句可以先行写好;

         构造语句

             1.利用循环将S表中的所有类别(包括SID及SNAME)查询出来放入DATASET中,并将查询结果数目作为循环次数值

             2.每次循环构造

                    “构造语句1” --- 按照格式将查询出的数据从DATASET中取出填上

                     “构造语句2”  --- 在((G g     left JOIN     A      a     ON      g.AID   =   a.AID)基础上每次在前添加"("

                     "构造语句3-5"  --- 根据格式填写,数量即为循环次数

     

    最后按照顺序将所有语句连接起来即可构成所求SQL语句

     

    本文主要采用例子的形式介绍了根据数据库记录动态进行查询连接的方法,应用时可以根据需要进行调整,不过应该注意以下几点:

              1.分段语句的两头最好留下空格,即:" " + subString + " "以免最后构成SQL语句时出现错误

              2.ACCESS采用J-SQL在多表查询连接时必须注意括号的用法,这就是"构造语句2"生成的原理,括号必须一层嵌套一层,可以在连接好的SQL语句中看出层次关系。

     

     

    展开全文
  • mysql数据库中如何把多数据合并成一? mysql数据库中如何把多数据合并成一? mysql数据库中如何把多数据合并成一
  • 数据库中group by 一列查询出若干行数据,sql如下: select * from table group by 字段; 合并查询出的: select GROUP_CONCAT(查询的字段 separator ‘;’) from table group by 字段;

    生产中的应用场景:
    在数据库中group by 一列查询出若干行数据,sql如下:
    select * from table group by 列字段;
    合并查询出的列:
    select GROUP_CONCAT(查询的字段 separator ‘;’) from table group by 列字段;

    展开全文
  • 数据库中group by 一列查询出若干行数据,sql如下: select * from table group by 字段; 合并查询出的: selectGROUP_CONCAT(查询的字段 separator ‘;’) from table group by 字段; ...

     

    生产中的应用场景: 

     

     

    在数据库中group by 一列查询出若干行数据,sql如下: 
    select * from table group by 列字段; 
    合并查询出的列: 
    select GROUP_CONCAT(查询的字段 separator ‘;’) from table group by 列字段;

    展开全文
  • mysql数据库中把查询结果列合并分组显示(GROUP_CONCAT) 效果图 在数据库中group by 一列查询出若干行数据,sql如下: select * from table group by 字段; 合并查询出的: select GROUP_CONCAT(查询的...

    mysql数据库中利用GROUP_CONCAT)把查询的结果列合并分组显示

    在这里插入图片描述
    效果图
    在这里插入图片描述

    在数据库中group by 一列查询出若干行数据,sql如下:
    select * from table group by 列字段;
    合并查询出的列:
    select GROUP_CONCAT(查询的字段 separator ‘;’) from table group by 列字段;

    展开全文
  • 其中包含了考研政治,考研英语,考研数学以及考研专业科这些字段,学校+专业决定考研科目,我要查询得到某个学校某个专业要考哪些科目,就想把这几个字段合并为一。比如:学校 专业 政治 外语 专业科一 专业科二 ...
  • SELECT arrival_goods, COUNT(1) FROM goods_info WHERE Departure_destination IS NOT NULL AND Departure_destination != '' AND Delivery_num IS NOT NULL AND Delivery_num !...G...
  • 将Oracle两个列合并成一个 SQL怎么写? 比如 有一张表n 字段 a b 1 4 2 5 3 6 合并后为 c 1 2 3 4 5 6
  • SQL 不同的表查询结果合并

    万次阅读 2017-09-20 11:10:51
    两个不同的表进行查询,需要把结果合并, 比如table1的列为 id, user_id, type_id,pro_id; table2的列为 id,user_...将两个表的查询结果合并到一起的查询语句为 select *, null as collect_id from table1 where u
  • oracle数据库使用系统函数将多个查询结果集合并到一行中。
  • 数据库查询某个表时,需要把两列或者多数据项合成一输出。那么作法如下:如数据表TestTable 数据 A和B现在要把A、B合并成一C输出。 SQL脚本SELECT A+B AS C FROM [TestTable]
  • MySql 将查询结果列合并成一行GROUP_CONCAT GROUP_CONCAT(expr) 该函数返回带有来自一个组的连接的非NULL值的字符串结果。其完整的语法如下所示: GROUP_CONCAT([DISTINCT] expr [,expr ...] [ORDER ...
  • MySQL数据库:第十一章:合并查询(联合查询

    千次阅读 热门讨论 2018-10-30 11:01:11
    作者:java_wxid 回退至Mysql数据库首页 #进阶10:合并查询(联合查询) 引入:一个结果集的查询的数据来自于多张表。...①要求实现union的多条查询语句的查询列数必须一致,列名无要求,的意...
  • 约定: import pandas as pd ...Merge-数据库风格的合并 ...pandas的合并(merge)的的绝大功能和数据库操作类似的。具有如下参数: pd.merge(left, right, how=’inner’, on=None, left...
  • sql查询结果合并

    千次阅读 2019-08-13 10:05:58
    使用 group_concat 和 concat 合并查询结果
  • SQL:数据库合并列数据:遇到一个更新的问题 想要把查询到的数据某一列拼接成字符串形式返回用的是SQL数据库中的STUFF函数比如 查询到的表(u_College)如下Id Name Age Classify1 张一 18 一班2 张二 17 二班3 张三 ...
  • oracle 多个查询语句结果列合并

    千次阅读 2015-05-27 18:47:50
    1.oracle 多个查询语句结果合并 在开发环境中遇到这样关于数据库的问题 有三个不同的查询语句  1:  select year_mon,sum(gasmon)  from a  where id='HBsRf0t6UI'  and class=11  group by year_...
  • 数据库中将一个字段的多个值用逗号分开,并且合并成一的方法如下:在数据库中创建一个自定义函数: CREATE FUNCTION f_catString(@id uniqueidentifier) RETURNS NVARCHAR(1000) AS BEGIN DECLARE @s ...
  • ![图片说明](https://img-ask.csdn.net/upload/201604/13/1460534106_596763.png) 现在的需求是我需要把前面一行的数据,相同的只显示一行,,其余的都不显示
  • sqlserver数据库多行数据合并一行

    千次阅读 2019-07-01 14:21:40
    我们日常查询数据时,经常会有将查询到的数据按照某一分组显示(合并多行数据) select 类别, 名称=( stuff( (select','+名称fromTable_Awhere类别=A.类别forxmlpath('')), 1, 1, ...
  • 达梦 wm_concat函数,用于转行,逗号分隔 首先让我们来看看这个神奇的函数wm_concat(列名),该函数可以把值以","号分隔起来,并显示成一行,接下来上例子,看看这个神奇的函数如何应用 准备测试数据 SQL> ...
  • 使用oracle中自带函数 wmsys.wm_concat(需合并列的字段名) 用法如下: select code,name,wmsys.wm_concat(baname) from tab group by code,name; 转载于:https://www.cnblogs.com/monogo/p/7325690.html...
  • 查询结果数据合并到一的函数是wm_concat(列名), wm_concatwm_concat(列名)函数用法: SQL> select replace(wm_concat(name),',','|') from test;
  • 我们日常查询数据时,经常会有将查询到的数据按照某一分组显示(合并多行数据),比如: 表结构: create table t_user_course(username varchar(32),coursename varchar(100));   需要将以上数据按照...
  • 数据库查询

    千次阅读 2017-05-22 19:21:56
    /*********************************查询练习题*************************************/ --1.搜索pubs数据库中的titles表,返回书的价格打了8折后仍大于12美元的书的代号、种类、书的原价。 select Title_id,Type,...
  • 两个不同id的结果合并到一张表里,结果在同一: 1.创建两个结果表 2.只使用union是这种结果,然而在 t_id里有重复的id,这不是我们想要的结果 select * from t1 union select * from t2 3.需要加一个函数...
  • 最近在做一个关于数据库方面的任务,需要从相关联的几张表中查询需要读取的数据,再将这些数据合并到一起显示,通过查询资料,找到了处理方法,在此简单记录。 首先创建做测试需要使用的三张数据表apps、apps1、...
  • 有两张表,数据均不一样,要将两张表的数据合并到一起,想应的sql怎么拼接呢?求大神解答,不胜感激!

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 150,479
精华内容 60,191
关键字:

数据库查询结果合并同列