簡體   English   中英

右連接無法正常工作

[英]right join does not work properly

我有兩個表如下:

在此處輸入圖片說明

當我使用以下命令時,我得到以下結果:

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

結果:

在此處輸入圖片說明

但根據以下鏈接:

加入,因為我使用了正確的加入,我希望得到 saman 和 reza 的記錄,注釋列為空。 我很困惑,誰能說我怎樣才能獲得 saman 和 reza 的記錄,以及評論列的 null 以及上面顯示的結果?

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

?

我認為您在加入之前需要一個子查詢。

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

我很想知道執行計划中的不同之處,但沒有可用的 MySQL。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM