SQL语句含义

最近在看thinkphp6的文档,想问一下mysql大佬这句SQL语句中的 a 用在这里是什么意思?

Db::table($subQuery . ' a')
    ->where('a.name', 'like', 'thinkphp')
    ->order('id', 'desc')
    ->select();

构建出下面的SQL语句:

SELECT * FROM ( SELECT `id`,`name` FROM `think_user` WHERE `id` > 10 ) a WHERE a.name LIKE 'thinkphp' ORDER BY `id` desc

谢谢大佬~

阅读 3.4k
3 个回答

$subQuery = Db::table('think_user')

->field('id,name')
->where('id', '>', 10)
->buildSql();

集合的别名啊

含义为 起别名
可参考如下例子
假设从表名为aaabbbcccf中查询c1,c2两个字段,则sql语句如下:

SELECT aaabbbccc.c1,aaabbbccc.c2 FROM aaabbbccc

这样的话表名太长,可以给表名起个表名,一般都是简单且有代表性的,比如user表使用u
以上例子可变为

SELECT abc.c1,abc.c2 FROM aaabbbccc abc

同理 框架中 Db::table($subQuery . ' a') 就是给表名起别名的意义

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题