数据库:MySql 5.5.3
我type
在表中有一个列topic
,如果type
是“E”,这意味着“事件”表中存在一个条目,它应该查询“TOPIC_HAS_EVENT”表以从 EVENT 表中获取更多列。同样,如果 Type 是“P”,这意味着“轮询表”中存在一个条目,它应该查询“TOPIC_HAS_POLL”表以从 POLL 表中获取几列。如果类型为空,那么它应该像往常一样查询以从注释表中获取所有行及其注释。
最终结果应该包含所有类型('E'、'P'、NULL)的所有主题行及其来自其他表的特定列。如果这可以轻松完成,那么我需要添加更多列,如下所述
更复杂
如果 type='E' 有一些行,它应该从 EVENT_HAS_USER 表中获取更多行,例如用户信息。
关系
Each Topic has Many Comments
Each Topic has One Event
Each Topic has One Poll
EVENT ManyTOMany User
到目前为止创建的查询。我仍然需要添加“类型”列。请帮帮我。
SELECT DISTINCT
T.TOPIC_GUID, COUNT(*) TOTAL_COMMENTS
FROM
CIRCLE C, CIRCLE_HAS_USER CHU, CIRCLE_HAS_TOPIC CHT, TOPIC T
LEFT JOIN TOPIC_COMMENT TC ON T.TOPIC_GUID = TC.TOPIC_GUID
WHERE
CHT.CIRCLE_GUID = C.CIRCLE_GUID
AND T.TOPIC_GUID < 400000 -- ?
AND CHT.TOPIC_GUID = T.TOPIC_GUID
AND CHU.CIRCLE_GUID = C.CIRCLE_GUID
AND CHU.USER_GUID = 1
AND CHU.STATUS = 'A'
GROUP BY T.TOPIC_GUID
ORDER BY T.LAST_UPDATED_TIMESTAMP DESC
LIMIT 10