如何对现场数据进行分组? [英] How to group field data?

查看:110
本文介绍了如何对现场数据进行分组?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有SQL查询来显示数据

I have sql query to show data

"SELECT
  `artikel`.`foto_naam`,
  `fotografer`.`id`,
  `fotografer`.`name_fotografer`,
  `customer`.`first_name`,
  `customer`.`last_name`,
  `fotografer`.`domain_name`,
  `fotografer`.`email`,
  `order`.`invoice_no`,
  `order`.`order_cost`,
  `order`.`total_cost`,
  `order`.`invoice_date`,
  `order`.`payment`,
  `order`.`status`
FROM
  `artikel_group`
  INNER JOIN `artikel` ON `artikel`.`artikelgroup_id` = `artikel_group`.`id`
  INNER JOIN `fotografer` ON `artikel_group`.`fotografer_id` = `fotografer`.`id`
  INNER JOIN `order_has_artikelgroup` ON `order_has_artikelgroup`.`artikelgroup_id` = `artikel_group`.`id`
  INNER JOIN `order` ON `order`.`id` = `order_has_artikelgroup`.`order_id` 
  INNER JOIN `customer` ON `order`.`customer_id` = `customer`.`id`"

我在btowser中使用sql框架codeigniter进行sql查询的查询结果

The query result for my sql query in btowser i use php framework codeigniter

Name  | email           | customer | invoice id| 
Lekto | lekto@gmail.com | edwin    | 11        |
Lekto | lekto@gmail.com | risa     | 12        |
Lekto | lekto@gmail.com | edwin    | 13        |
heko  | heko@gmail.com  | pae      | 15        |
heko  | heko@gmail.com  | edwin    | 16        |

如何对字段进行分组

Name  | email           | customer | invoice id|
Lekto | lekto@gmail.com | edwin    | 11        |
      |                 | risa     | 12        |
      |                 | edwin    | 13        |
heko  | heko@gmail.com  | pae      | 15        |
      |                 | edwin    | 16        |

请帮助显示这样的查询

推荐答案

奇怪的问题,但是如果您确实需要MySQL,那么可以使用USER VARIABLES将Nameemail列设置为"(空字符串)以获取列表中的子项.

Odd question, but if you REALLY NEED THIS in MySQL then you could use USER VARIABLES to set the Name and email column to '' (empty string) for subitems in the list.

演示场 或例如

DEMO FIDDLE or e.g.

select 
    if(@tName!= Name, if(@'tNAME':= Name, Name,Name) , '' ),
    if(@tEmail!= Email, if(@'tEmail':= Email, Email ,Email) , '' ),
    customer,
    invoice_id,
    /* blah blah blah */
from 
    tables
    join (select @'tName':='', @'tEmail':='') T on 1=1 
/* blah blah blah */

我提供了join (select @'tName':='') T on 1=1来重新初始化用户变量,以防万一您无法控制它们.

I provide the join (select @'tName':='') T on 1=1 to re-initialize the user variable just in case you can't control them.

这篇关于如何对现场数据进行分组?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆