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
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)