右连接无法正常工作

时间:2014-04-06 00:55:40

标签: mysql sql

我有两张表如下:

enter image description here

当我使用以下命令时,我得到以下结果:

SELECT A.enid AS enid, sum(A.comment) AS Comments, B.enname
FROM ee.entity_epoch A
right JOIN ee.entity B
ON A.id = B.enid group by A.enid

结果:

enter image description here

但是根据以下链接:

joins 因为我使用正确的连接,我希望得到saman和reza的记录,注释列为null。我很困惑,任何人都可以说我怎样才能获得saman和reza的记录以及null的评论栏加上上面显示的结果?

2 个答案:

答案 0 :(得分:1)

reza和saman在A中都有匹配,因此没有为它们生成A的“Comments is NULL”记录。你确定你不想要

SELECT A.enid AS enid, sum(A.comment) AS Comments, B.enname FROM ee.entity_epoch A right JOIN ee.entity B ON A.enid = B.enid group by A.enid

答案 1 :(得分:1)

我认为在加入之前你想要一个子查询。

SELECT *
  FROM (SELECT enid
             , SUM(COMMENT) AS Comments
          FROM entity_epoch
          GROUP BY enid) a
        RIGHT JOIN
        entity B ON A.enid = B.enid

sqlfiddle

就我个人而言,我会重新排序并使其成为左连接以便于阅读,但它没有任何功能差异。

这也可以这样做:

SELECT A.enid AS enid
      ,SUM(A.Comment) Comments
      , B.enname
  FROM entity_epoch A
       RIGHT JOIN 
       entity B
       ON A.enid = B.enid 
GROUP BY b.enid

sqlfiddlee

我很高兴看到exectuon计划中的不同,但没有MySQL可用。