无法弄清楚为什么在MYSQL中没有选择行

时间:2015-06-06 05:31:57

标签: mysql sql

因此,在我的活动表中有一项名为“电话技巧”的活动

列活动.act_id' 174'

列活动。电话技巧

它在此活动中没有任何主管,所以当我使用下面的查询输出数据时,我认为它只有活动名称,然后是右边的空白列。

不幸的是,我只是获得了其他5项活动及其主管技能。

这是我的疑问:

SELECT 
    a.des 'Activity Name', 
    group_concat(DISTINCT e.exp_name separator ', ') 'Supervisors Skills'
FROM activity a
JOIN department d
on a.act_id = d.act_id
JOIN supervisor s
on d.sup_id = s.sup_id
JOIN skills sk
on s.sup_id = sk.sup_id
JOIN expertise e
on sk.exp_id = e.exp_id
GROUP BY a.act_id
ORDER BY a.des, e.exp_name ASC;

我错过了什么,将最后一个活动名称放在右边的空白列?

2 个答案:

答案 0 :(得分:1)

  

它在这项活动中没有任何主管,所以当我出局时   使用下面的查询数据,我以为它只会有   活动名称然后是右边的空白列。

所以你需要left joins

SELECT 
    a.des 'Activity Name', 
    group_concat(DISTINCT e.exp_name separator ', ') 'Supervisors Skills'
FROM activity a
LEFT JOIN department d on a.act_id = d.act_id
LEFT JOIN supervisor s on d.sup_id = s.sup_id
LEFT JOIN skills sk on s.sup_id = sk.sup_id
LEFT JOIN expertise e on sk.exp_id = e.exp_id
GROUP BY a.act_id
ORDER BY a.des, e.exp_name ASC;

答案 1 :(得分:0)

SELECT子句的这一部分为您提供了其他五项活动:

DISTINCT e.exp_name separator ', ')

其他人必须解释在显示“最后一个活动名称”时需要做些什么。根据问题中的信息,我不清楚这一点。