您如何在MySQL中使用“ WITH”子句?

您如何在MySQL中使用“ WITH”子句?,第1张

您如何在MySQL中使用“ WITH”子句

8.0之前的MySQL 不支持WITH子句(在SQL
Server中为CTE;在Oracle中为子查询分解),因此您只能使用:

  • 临时表
  • 派生表
  • 内联视图(有效地代表WITH子句-它们是可互换的)

该功能的请求可以追溯到2006年。

如前所述,您提供了一个糟糕的示例-如果您不以任何方式更改列的输出,则无需执行子选择:

  SELECt *     FROM ARTICLE t    JOIN USERINFO ui ON ui.user_userid = t.article_ownerid    JOIN CATEGORY c ON c.catid =  t.article_categoryid   WHERe t.published_ind = 0ORDER BY t.article_date DESC    LIMIT 1, 3

这是一个更好的例子:

SELECt t.name,       t.num  FROM TABLE t  JOIN (SELECt c.id    COUNT(*) 'num'          FROM TABLE c         WHERe c.column = 'a'      GROUP BY c.id) ta ON ta.id = t.id


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/4900219.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-12
下一篇 2022-11-12

发表评论

登录后才能评论

评论列表(0条)

保存