我需要帮助来构建查询。问题是,我没有权限对数据库进行设计更改。考虑到这一点,我的表是这样的:复杂的跨表查询
ID
日期
LastStory
UserAssignedTo
Stories
ID
ProblemID
UserThatMadeTheStory
DateOfStory
状态
数据如何存储: 系统上的任何用户都可以创建一个“问题”。每次创建问题时,还会在表格Stories上插入一行,链接到Problems表的“ProblemID”,状态为“2”,并将“UserThatMadeTheStory”分配给产生“问题”的实际用户”。 稍后,问题将“重新分配给”其他用户。这个过程创建一个“故事”条目,并带有描述和“UserThatMadeTheStory”更改为指定它的用户,同时在“Problems”表中将“UserAssignedTo”更改为保存新用户分配至。 然后,要知道世卫组织实际上打开了这个问题,我必须在“故事”中寻找与我想知道的相匹配的“问题ID”的第一条记录。现在
,我的问题是这样的:
我要查找的,可以说,上个月,由用户创建的问题。 查询如何?
编辑:
SELECT s.*
FROM stories s
INNER JOIN (SELECT problemid, min(id) AS Id FROM stories GROUP BY problemid) s2 ON s.id = s2.id
INNER JOIN (SELECT UserThatMadeTheStory, DateOfStory, Id FROM stories) s3 ON s2.id = s3.id
WHERE s3.UserThatMadeTheStory = <the one you're interested in>
AND s3.DateOfStory = <dates you're interested in>
这不工作按预期,现在我已经诺特尔问题...
如果你能帮助我...我必须列出已存在的问题由X用户创建。和还没有得到任何“故事”中让说,“过去2天”(或指定的任何日期[它可以是外部输入到查询])
但这并工作按预期。由于一些最小的错误(因为使用“min(id)”作为ID)并且最终的“Where s2.UserThatMadeTheStory”和“s2.DateOfStory”必须更改为“s”,所以我必须对查询进行一些修改。 。S2使用s.UserThatMadeTheStory不会给你回最初提出问题的用户 – Loki
的我已经编辑我的答案 - 给一个尝试.. – StevieG
修正现在的工作作为一个魅力感谢校正 现在。我有一个更大的问题,如果你能帮助我...我 必须列出已创建由X用户问题,而且还没有有任何“故事”中可以说“48小时”(或指定的任何日期) – Loki