SQL查询中需要使用别名问题

SQL查询中什么时候需要使用表别名?

今天写MySQL时遇到使用表别名的问题,这里重新总结一下。

1、 表名很长时

select * from www_baidu_user where www_baidu_user.id = 1;

select * from www_baidu_user u where u.id = 1;

查询的结果一样,但是第二个使用表别名时更简洁。同样,字段的别名也是一样的原理。

2、 必须使用别名时

如下:

1)

select * from (select * from table1) as t1

这是从子查询直接查询所有的数据需要给表起别名

2)

select b.name id,a.job,a.sex from A a left outer join B b on b.id = a.id

这个是为了查询某一列或几列的数据,如A表中没有name字段,查询时必须带上表名或表的别名,连接查询时常用到。

以上所述是小编给大家介绍的SQL查询中需要使用别名问题,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

时间: 2024-09-26 06:07:53

SQL查询中需要使用别名问题的相关文章

SQL行号排序和分页(SQL查询中插入行号 自定义分页的另类实现)_MsSql

(一)行号显示和排序 1.SQL Server的行号 A.SQL 2000使用identity(int,1,1)和临时表,可以显示行号 SELECT identity(int,1,1) AS ROWNUM, [DataID] INTO #1 FROM DATAS order by DataID; SELECT * FROM #1 B.SQL 2005提供一个很好用的函数row_number(), 可以直接用来显示行号,当然也可以使用SQL 2000的identity SELECT row_num

求SQL 查询中截取特定字符串,动态索引方法

问题描述 SQL数据库中现有类似以下数据:router16960761696076,1712040,1720394,1714275,1712018,17119841696076,1712040,1720394,1714275,1712018,1711984,1726235,1712000我需要截取特定的字符(比如最后两个逗号直接的值:1712018,倒数第二个逗号到倒数第三个逗号直接的值),希望论坛大神帮忙指点一下,能有个详细的函数最好.谢谢.补充一下,数值位数有可能是7位,有可能是8位,所以不

SQL查询中in和exists的区别分析_MsSql

select * from A where id in (select id from B); select * from A where exists (select 1 from B where A.id=B.id); 对于以上两种情况,in是在内存里遍历比较,而exists需要查询数据库,所以当B表数据量较大时,exists效率优于in. 1.select * from A where id in (select id from B); in()只执行一次,它查出B表中的所有id字段并缓存

在SQL查询中使用LIKE来代替IN查询的方法

如下: 复制代码 代码如下: SELECT * FROM Orders WHERE OrderGUID IN('BC71D821-9E25-47DA-BF5E-009822A3FC1D','F2212304-51D4-42C9-AD35-5586A822258E') 可以看出直接在IN后面跟ID的集合需要将每一个ID都用单引号引起来.在实际应用中会遇到这么一种情况,在界面中收集的是一串GUID的拼接字符串,中间以逗号隔开,如果作为参数传到一个存储过程中执行,最终生成的语句会是下面这样: 复制代码

在SQL查询中使用LIKE来代替IN查询的方法_MsSql

如下: 复制代码 代码如下: SELECT * FROM Orders WHERE OrderGUID IN('BC71D821-9E25-47DA-BF5E-009822A3FC1D','F2212304-51D4-42C9-AD35-5586A822258E') 可以看出直接在IN后面跟ID的集合需要将每一个ID都用单引号引起来.在实际应用中会遇到这么一种情况,在界面中收集的是一串GUID的拼接字符串,中间以逗号隔开,如果作为参数传到一个存储过程中执行,最终生成的语句会是下面这样: 复制代码

SQL查询中in和exists的区别分析

select * from A where id in (select id from B); select * from A where exists (select 1 from B where A.id=B.id); 对于以上两种情况,in是在内存里遍历比较,而exists需要查询数据库,所以当B表数据量较大时,exists效率优于in. 1.select * from A where id in (select id from B); in()只执行一次,它查出B表中的所有id字段并缓存

在sql查询中使用表变量_MsSql

复制代码 代码如下: USE [DAF_DB] GO /****** Object: StoredProcedure [dbo].[PROG_WORKTASK_List] Script Date: 06/14/2010 21:14:43 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO --[PROG_WORKTASK_List] 62,0,'','',0,0,'','' -- ===========================

在sql查询中使用表变量

复制代码 代码如下: USE [DAF_DB] GO /****** Object: StoredProcedure [dbo].[PROG_WORKTASK_List] Script Date: 06/14/2010 21:14:43 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO --[PROG_WORKTASK_List] 62,0,'','',0,0,'','' -- ===========================

怎么在SQL语句中再加一个字段呀!

问题描述 怎么在SQL语句中再加一个字段呀! String sql = "select tab.nid,tab.tid,tab.pdate,tab.psysdate,tab.pprice,tab.prodname," + "tab.auditstatus,tab.pnumber,tab.zprice,tab.companyId,tab.sno,tab.soeno,tab.provname from " + "(select n.id nid,t.id ti