设为首页 加入收藏

TOP

面试题
2015-07-24 11:11:35 来源: 作者: 【 】 浏览:4
Tags:试题

1、利用case when进行子查询

?

 SELECT u.id user_id,u.username user_username,g.id group_id,
  CASE  g.flag  
  WHEN   '0'   THEN   g.groupcode  
  ELSE  (SELECT t.fullname FROM tab_0009 t WHERE t.id = g.id)
  END AS   group_groupname, 
 CASE  g.flag  
  WHEN   '0'   THEN   g.groupname  
  ELSE  (SELECT t.fullcode FROM tab_0009 t WHERE t.id = g.id)
  END AS   group_groupcode, 
u_g.id usergroup_id,u_g.user_id usergroup_userId,u_g.group_id usergroup_groupId
FROM user_group u_g RIGHT JOIN  t_group g ON u_g.group_id = g.id LEFT JOIN t_user u ON u_g.user_id = u.id  
2、将t_group和tab_0009作外连接,最后字段拼接
SELECT u.id user_id,u.username user_username,g.id group_id,
CONCAT(IFNULL(g.groupname,''),IFNULL(t.fullname,''))  group_groupname,
CONCAT(IFNULL(g.groupcode,''),IFNULL(t.fullcode,''))  group_groupcode,
u_g.id usergroup_id,u_g.user_id usergroup_userId,u_g.group_id usergroup_groupId
FROM user_group u_g ,t_user u,t_group g LEFT JOIN tab_0009 t ON t.id = g.id   WHERE u_g.group_id = g.id AND  u_g.user_id = u.id;

SELECT u.id user_id,u.username user_username,g.id group_id,
CONCAT(IFNULL(g1.groupname,''),IFNULL(t.fullname,''))  group_groupname,
CONCAT(IFNULL(g1.groupcode,''),IFNULL(t.fullcode,''))  group_groupcode,
u_g.id usergroup_id,u_g.user_id usergroup_userId,u_g.group_id usergroup_groupId

FROM user_group u_g RIGHT JOIN  t_group g ON u_g.group_id = g.id LEFT JOIN t_user u ON u_g.user_id = u.id,
t_group g1 LEFT JOIN tab_0009 t ON t.id = g1.id WHERE g1.id = g.id; 

SELECT u.id user_id,u.username user_username,g.id group_id,
g.groupname group_groupname,
g.groupcode group_groupcode,
u_g.id usergroup_id,u_g.user_id usergroup_userId,u_g.group_id usergroup_groupId
FROM user_group u_g RIGHT JOIN  t_group g ON u_g.group_id = g.id LEFT JOIN t_user u ON u_g.user_id = u.id 
 WHERE g.flag != 0 
 
UNION 
 SELECT u.id user_id,u.username user_username,g.id group_id,
(SELECT t.fullname FROM tab_0009 t WHERE t.id = g.id)  group_groupname,
(SELECT t.fullcode FROM tab_0009 t WHERE t.id = g.id) group_groupcode,
u_g.id usergroup_id,u_g.user_id usergroup_userId,u_g.group_id usergroup_groupId
FROM user_group u_g RIGHT JOIN  t_group g ON u_g.group_id = g.id LEFT JOIN t_user u ON u_g.user_id = u.id 
 WHERE g.flag = 0 


?

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Chapter2UserAuthentication,Auth.. 下一篇MongDB基础学习(三)

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·Bash 脚本教程——Li (2025-12-26 07:53:35)
·实战篇!Linux shell (2025-12-26 07:53:32)
·整理了250个shell脚 (2025-12-26 07:53:29)
·HyperText Transfer (2025-12-26 07:20:48)
·半小时搞懂 HTTP、HT (2025-12-26 07:20:42)