Mysql 如何完成这个SQL查询作业?

Mysql 如何完成这个SQL查询作业?,mysql,sql,Mysql,Sql,这是我的家庭作业问题: 编写一个SQL查询,从用户id、用户名、来自表“user”的电子邮件、“article”标题、“comments”内容返回2013年创建的所有文章 这是我目前的解决方案: Select user_id, users_username, users_email, articles_title, articles_created, comments_content from comments inner join users on comments.user_id =

这是我的家庭作业问题:

编写一个SQL查询,从用户id、用户名、来自表“user”的电子邮件、“article”标题、“comments”内容返回2013年创建的所有文章

这是我目前的解决方案:

Select user_id, users_username, users_email, articles_title, articles_created, comments_content
from comments
inner join users
   on comments.user_id = users.id
inner join users
   on comments.articles_id = articles.id
where created > = '2013/01/01' AND '2014/01/01';
以下是ERD:


此查询应返回指定的结果集:

SELECT u.id AS user_id
     , u.username
     , u.email
     , a.title
     , c.created
     , c.content
  FROM comments c
  JOIN users u
    ON u.id = c.user_id
  JOIN articles a
    ON a.id = c.articles_id
 WHERE c.created >= '2013-01-01' 
   AND c.created <  '2014-01-01'
 ORDER BY u.id, c.created
然后回答以下问题,查看SQL:

  • 此查询返回多少列
  • 从comments表返回哪些列
  • 涉及多少张桌子
  • 是否有任何外部联接操作
  • 选择列表中是否有任何聚合
  • 等等

SQL的格式化对未来的读者有帮助。真正的好处在于更复杂的SQL(涉及多个表、聚合、内联视图、复杂表达式、相关子查询等。)

此查询应返回指定的结果集:

SELECT u.id AS user_id
     , u.username
     , u.email
     , a.title
     , c.created
     , c.content
  FROM comments c
  JOIN users u
    ON u.id = c.user_id
  JOIN articles a
    ON a.id = c.articles_id
 WHERE c.created >= '2013-01-01' 
   AND c.created <  '2014-01-01'
 ORDER BY u.id, c.created
然后回答以下问题,查看SQL:

  • 此查询返回多少列
  • 从comments表返回哪些列
  • 涉及多少张桌子
  • 是否有任何外部联接操作
  • 选择列表中是否有任何聚合
  • 等等

SQL的格式化对未来的读者有帮助。真正的好处在于更复杂的SQL(涉及多个表、聚合、内联视图、复杂表达式、相关子查询等。)

此查询应返回指定的结果集:

SELECT u.id AS user_id
     , u.username
     , u.email
     , a.title
     , c.created
     , c.content
  FROM comments c
  JOIN users u
    ON u.id = c.user_id
  JOIN articles a
    ON a.id = c.articles_id
 WHERE c.created >= '2013-01-01' 
   AND c.created <  '2014-01-01'
 ORDER BY u.id, c.created
然后回答以下问题,查看SQL:

  • 此查询返回多少列
  • 从comments表返回哪些列
  • 涉及多少张桌子
  • 是否有任何外部联接操作
  • 选择列表中是否有任何聚合
  • 等等

SQL的格式化对未来的读者有帮助。真正的好处在于更复杂的SQL(涉及多个表、聚合、内联视图、复杂表达式、相关子查询等。)

此查询应返回指定的结果集:

SELECT u.id AS user_id
     , u.username
     , u.email
     , a.title
     , c.created
     , c.content
  FROM comments c
  JOIN users u
    ON u.id = c.user_id
  JOIN articles a
    ON a.id = c.articles_id
 WHERE c.created >= '2013-01-01' 
   AND c.created <  '2014-01-01'
 ORDER BY u.id, c.created
然后回答以下问题,查看SQL:

  • 此查询返回多少列
  • 从comments表返回哪些列
  • 涉及多少张桌子
  • 是否有任何外部联接操作
  • 选择列表中是否有任何聚合
  • 等等


SQL的格式化对未来的读者有帮助。真正的好处在于更复杂的SQL(涉及多个表、聚合、内联视图、复杂表达式、相关子查询等。)

我建议您包括到目前为止所获得的内容,即使只是
SELECT*FROM users
,并问一个问题。仅仅粘贴你的家庭作业问题不会在这里给你任何分数。我确实包括了我的工作…
在何处创建>='2013/01/01'和'2014/01/01'
没有做你认为它做的事情。你可能想要
where created>='2013/01/01'和<2014/01/01'
或者
where created在'2013/01/01'和'2013/12/31'之间
@MarcusAdams:他说“2013年创建”。我假设他不想要
'2014/01/01'
@RocketHazmat,MySQL能识别这种格式的日期吗?我建议你包括你迄今为止得到的,即使只是
从用户那里选择*
,然后问一个问题。仅仅粘贴你的家庭作业问题不会在这里给你任何分数。我确实包括了我的工作…
在何处创建>='2013/01/01'和'2014/01/01'
没有做你认为它做的事情。你可能想要
where created>='2013/01/01'和<2014/01/01'
或者
where created在'2013/01/01'和'2013/12/31'之间
@MarcusAdams:他说“2013年创建”。我假设他不想要
'2014/01/01'
@RocketHazmat,MySQL能识别这种格式的日期吗?我建议你包括你迄今为止得到的,即使只是
从用户那里选择*
,然后问一个问题。仅仅粘贴你的家庭作业问题不会在这里给你任何分数。我确实包括了我的工作…
在何处创建>='2013/01/01'和'2014/01/01'
没有做你认为它做的事情。你可能想要
where created>='2013/01/01'和<2014/01/01'
或者
where created在'2013/01/01'和'2013/12/31'之间
@MarcusAdams:他说“2013年创建”。我假设他不想要
'2014/01/01'
@RocketHazmat,MySQL能识别这种格式的日期吗?我建议你包括你迄今为止得到的,即使只是
从用户那里选择*
,然后问一个问题。仅仅粘贴你的家庭作业问题不会在这里给你任何分数。我确实包括了我的工作…
在何处创建>='2013/01/01'和'2014/01/01'
没有做你认为它做的事情。你可能想要
where created>='2013/01/01'和<2014/01/01'
或者
where created在'2013/01/01'和'2013/12/31'之间
@MarcusAdams:他说“2013年创建”。我假设他不想要
'2014/01/01'
@RocketHazmat,MySQL能识别这种格式的日期吗?非常感谢Spencer!我会在这里加上+1,但我对向两次表现出有限努力的人提供如此多的帮助持保留态度。对于这是否有助于他们自己的学习过程,我有两种看法,但我很肯定这对反对帮助吸血鬼主义的斗争毫无帮助。@halfer:我理解你的意思,我同意你的看法;但OP确实通过发布问题来寻求帮助。我认为几个示例可以帮助弥合文档中稀疏示例之间的差距,并使一些代码正常工作。一个好的例子总比一个坏的好。非常感谢斯宾塞!我会在这里加上+1,但我对o有所保留