【问题标题】:MySql show details in single rowMySql 在单行中显示详细信息
【发布时间】:2015-12-21 13:57:33
【问题描述】:

我有一个查询,它返回多行中的特定用户数据,如下所示,

上面的查询结果如下,

SELECT user_id,route_id,route_schedule_id FROM um.user_rm.route WHERE user_id IN ( 从um.user_rm.route UR 中选择 UR.user_id INNER JOIN um.user_waitinglist UW ON UW.user_id=UR.user_id WHERE UR.route_schedule_id=43 );

我的要求是在如下单行中获取详细信息,

任何建议,

提前致谢 桑吉萨

【问题讨论】:

  • um.user_rm.route 是表的实际名称?
  • 是的就是实名。um表示用户管理

标签: mysql


【解决方案1】:

试试这个

SELECT user_id, route_id, CAST(GROUP_CONCAT(route_schedule_id) AS CHAR) AS schedules
FROM um.user_rm.route
WHERE user_id IN (
    SELECT UR.user_id
    FROM um.user_rm.route UR
    INNER JOIN um.user_waitinglist UW ON UW.user_id=UR.user_id WHERE UR.route_schedule_id=43
)
GROUP BY user_id

【讨论】:

  • 这给了我一个时间表。我想要两个时间表,我明白了。但需要寻找是否有可能进入单行
【解决方案2】:

我成功完成了查询并获得了所需的输出。以下是我的查询,

SELECT R1.user_id,R1.route_id AS Route1,R1.route_schedule_id AS Schedule1,
       R2.route_id AS Route2,R2.route_schedule_id AS Schedule2 FROM `um.user_rm.route` R1 
INNER JOIN `um.user_rm.route` R2 ON R1.user_id=R2.user_id AND R1.user_route_id > R2.user_route_id
WHERE R1.user_id  IN
(
  SELECT UR.user_id FROM `um.user_rm.route` UR
             INNER JOIN `um.user_waitinglist` UW ON UW.user_id=UR.user_id
             WHERE UR.route_schedule_id=43
)
GROUP BY R1.user_id

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-07-05
    • 2014-07-15
    • 2010-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多