我目前有一个名为 v_testhorses
的 View ,它从 Horses
和 Results
中提取数据。它具有以下值 -
HID|HName|YOB|Gender|Sire|Dam|OName|Stable|LTE|Year
其中,LTE
= Results
中的 earnings
字段之和,Year
= 为以下内容创建的单独列每年
(例如,如果马 B 在 2012 年和 2011 年出现,则只有这两年的栏目,并且每年都有单独的 LTE)
我尝试仅使用 Sire
字段创建一个 View ,同时考虑其他因素。理想情况下它看起来像这样 -
HID|HName|ProgenyEarnings|Year
在本例中,HName
基于 Sire
,ProgenyEarnings
是所有马匹的 LTE
总和与陛下
一起。这是一种查看 v_testhorses
中所有马匹并将它们“分配”给也在 v_testhorses
数据库中的父亲的方法。这是根据后代来决定谁是每年收入最高的父亲的最简单方法。
我希望这是有道理的!
我一直在尝试将 WHERE HName=Sire
作为子句,但它只是给了我一个空 View 。
最佳答案
您必须将 View 与其自身结合起来才能将后代与其父亲联系起来:
SELECT h1.HID, h1.HName, SUM(h2.LTE) AS ProgenyEarnings, h1.Year
FROM v_testhorses AS h1
JOIN v_testhorses AS h2 ON h1.HName = h2.Sire
GROUP BY h1.HID
关于mysql - 从另一个 View 创建一个 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46501908/