【问题标题】:mysql - display all group name and show the name belong to that groupmysql - 显示所有组名并显示属于该组的名称
【发布时间】:2015-08-27 06:20:40
【问题描述】:
  • 成员
    ID  类名  名称  组ID
    1         1A           阿里          1
    2         1A           阿布        3


  • groupID  组名
    1          橙色
         2          蓝色
         3         绿色

  • 我想要的输出
    组名  名称
    橙色       阿里
    蓝色
    绿色        阿布

  • 我尝试使用此查询,但无法获得上述输出:

    select g.groupname, m.name 
    from group g, member m
    where m.groupID = g.groupID && m.classname = '1A';
    
  • 我应该如何修改它以获得上述输出?

【问题讨论】:

  • 尽量不要使用已经用作SQL语法的单词,如“group”

标签: mysql


【解决方案1】:

您需要使用LEFT JOIN 来获取没有成员的群组。

SELECT g.groupname, IFNULL(m.name, '') name
FROM group AS g
LEFT JOIN member AS m ON g.groupID = m.groupID AND m.classname = '1A'

【讨论】:

  • g.groupID == m.groupID => g.groupID = m.groupID
【解决方案2】:

这里用

SELECT g.groupname, COALESCE(m.name,'') -- Will return '' instead of (null)
FROM groupe AS g LEFT JOIN member as m using(groupID)

这里有一个小提琴 SQL 工作

http://sqlfiddle.com/#!9/37bccc/11

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-13
    • 2014-04-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多