数据库查询语句看不懂,具体如下

问题描述

select*from(selectnamefromdbo.tb_adminunionallselect*from(selectidasnamefromdbo.tb_reader)t)a后面加的这个t)a是什么意思?少一个都不行,真是没看懂,求解释

解决方案

解决方案二:
这两个都是一样的select语句需要有个表名,不管这个表名是真实存在的表还是一个查询结果你语句里面的t和a就是起的别名
解决方案三:
楼上已经解释了大概你可以这样理解select*fromaa=selectnamefromdbo.tb_adminunionallselect*fromtt=selectidasnamefromdbo.tb_reader
解决方案四:
t是表的别名,这样写比较简单
解决方案五:
写这个sql,里边两次用了坑爹的东西。首先,写select*from(selectidasnamefromdbo.tb_reader)t这个sql就是瞎掰。直接写里边的一个select语句就够了。其次,最外边的select*from(select一个字段from....)a这个sql语句也是一样地“故弄悬虚”,也是直接写里边的部分就够了。可见,这么一句简单的sql语句,两次故弄玄虚地弄嵌套子查询语法,这个sql语句的作者难道是在开发“代码混淆”工具吗?如果你在你接受实习培训的公司产品中、或者培训班的笔记中看到这样的代码,请提早考虑对方是否有资格对你教学的问题。
解决方案六:
如果这个代码是某个“生成器”产生的,那么你应该看看这个生成器有没有可能有升级版。虽然这个语句不影响sql语句执行效率,但是这种代码也仍然暗示着其僵化、简单粗暴的sql自动翻译质量。要小心使用它。
解决方案七:
引用5楼sp1234的回复:

如果这个代码是某个“生成器”产生的,那么你应该看看这个生成器有没有可能有升级版。虽然这个语句不影响sql语句执行效率,但是这种代码也仍然暗示着其僵化、简单粗暴的sql自动翻译质量。要小心使用它。

既然不影响效率,为什么会评价为“其僵化、简单粗暴”麻烦解释一下,没理解
解决方案八:
selectnamefromdbo.tb_adminunionallselectidasnamefromdbo.tb_reader就好像有人给你指路,让你前进5步,退后3步,左拐再右拐再左拐实际只需要前进2步左拐就到了
解决方案九:
引用6楼xiaobingking的回复:

Quote: 引用5楼sp1234的回复:
如果这个代码是某个“生成器”产生的,那么你应该看看这个生成器有没有可能有升级版。虽然这个语句不影响sql语句执行效率,但是这种代码也仍然暗示着其僵化、简单粗暴的sql自动翻译质量。要小心使用它。

既然不影响效率,为什么会评价为“其僵化、简单粗暴”麻烦解释一下,没理解

不影响效率不代表就没有隐患这种僵化的SQL语句生成方式,虽然数据库能认识并很好的优化它,但是你调试的时候就会很麻烦.太多没必要的东西在里面而且不同数据库对于SQL语句的优化性能可能也不太一样SQLSERVER数据库对于SQL语句优化是很好的,而如果你使用一些小数据库,可能就会真的一层一层的去查询

时间: 2024-10-31 13:44:34

数据库查询语句看不懂,具体如下的相关文章

php5-新手提问:php中数据库查询语句错误$mysqli->query()有错怎么回事?

问题描述 新手提问:php中数据库查询语句错误$mysqli->query()有错怎么回事? 问的东西在这 解决方案 sql语句直接数据库中查询有没有问题. 一般是sql语法错误 解决方案二: 能帮我看看吗?我找不出sql语法错误 解决方案三: 你的SQL语句连接的时候注意空格,检查一下where和and这两处前面有没有空格. 另外最后用参数化查询,既可以防止注入攻击,也更直观,还提高效率. 解决方案四: 你的SQL语句连接的时候注意空格,检查一下where和and这两处前面有没有空格. 另外最

编程-代码中有两条语句看不懂,能解释一下吗?

问题描述 代码中有两条语句看不懂,能解释一下吗? 通过调试发现empty()函数执行了6次,而pop()和dequeue()分别执行了4次, while(!S.empty()&&S.pop()==Q.dequeue());这条语句到底等价于哪条语句, return (ptr==NULL);这条语句到底等价于哪条语句? #include<iostream> using namespace std; struct list { int data; struct list *next

我又来提问了,ibatis中数据库查询语句的书写问题

问题描述 我写了一个查询语句: SELECT * FROM (SELECT a.*, ROWNUM rn FROM (SELECT * FROM tf_tr_specification where <isNotEmpty property="TechSpecification.speci_no" > speci_no=#TechSpecification.speci_no# </isNotEmpty> <isNotEmpty property="

海量数据库查询语句_MsSql

以下代码说明了我们实例中数据库的"红头文件"一表的部分数据结构: CREATE TABLE [dbo].[TGongwen] (    --TGongwen是红头文件表名   [Gid] [int] IDENTITY (1, 1) NOT NULL ,--本表的id号,也是主键   [title] [varchar] (80) COLLATE Chinese_PRC_CI_AS NULL ,  --红头文件的标题   [fariqi] [datetime] NULL ,--发布日期  

通用SQL数据库查询语句精华使用简介

精华|数据|数据库|语句 一. 简单查询 简单的Transact-SQL查询只包括选择列表.FROM子句和WHERE子句.它们分别说明所查询列.查询的表或视图.以及搜索条件等. 例如,下面的语句查询testtable表中姓名为"张三"的nickname字段和email字段. SELECT nickname,email FROM testtable WHERE name='张三'  (一) 选择列表 选择列表(select_list)指出所查询列,它可以是一组列名列表.星号.表达式.变量

通用SQL数据库查询语句

简单的Transact-SQL查询只包括选择列表.FROM子句和WHERE子句 一. 简单查询 简单的Transact-SQL查询只包括选择列表.FROM子句和WHERE子句.它们分别说明所查询列.查询的表或视图.以及搜索条件等. 例如,下面的语句查询testtable表中姓名为"张三"的nickname字段和email字段.SELECT nickname,email FROM testtable WHERE name='张三' (一) 选择列表 选择列表(select_list)指出

mysql数据库查询语句

问题描述 下面是我的street表我想通过aid查询到sid和sname但是不要显示aid 该如何查询啊 问题补充:sodart 写道 解决方案 select sid,sname from street where aid=?

数据库查询语句 查询 a表中 type=2 所对应的 b表的记录

问题描述 table a:id name type1 1tom 12 2tom 23 3tom 24 4tom 1table b:id a_id(FK 对应a表的id) 1 1 2 1 3 2 4 3 查询 a表中 type=2 所对应的 b表的记录 解决方案 写错了哦SELECT b.* FROM a, b WHERE a.id = b.a_id AND a.TYPE = '2'解决方案二:SELECT b.* FROM a, b WHERE a.id = b.a_id AND a."type

看别人的项目,就是数据库的表看不懂,帮忙解释下

问题描述 -- MySQL dump 10.11---- Host: localhost Database: zxdy-- -------------------------------------------------------- Server version5.0.41-community-nt/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;/*!40101 SET @OLD_CHARACTER_SET_R