[英]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
就個人而言,我會重新排序並使其成為可讀性的左連接,但它不會產生任何功能差異。
這也可以這樣做:
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
我很想知道執行計划中的不同之處,但沒有可用的 MySQL。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.