声明:本PostgreSQl实用指南系列为刘兴(http://deepfuture.iteye.com/)原创,未经笔者授权,任何人和机构不能转载
子查询的结果中构造一个数组
D:\pgsql>psql mydb
psql (8.4.2)
Type "help" for help.
mydb=#
mydb=# select * from student,citys where student.city=citys.id
mydb-# ;
name | age | city | sex | name | id
------------+-----+------+-------+------+----
艾丝凡 | 18 | 3 | | 上海 | 3
萨芬 | 19 | 3 | | 上海 | 3
未来 | 20 | 2 | man | 湛江 | 2
干哈 | 18 | 2 | man | 湛江 | 2
deepfuture | 20 | 1 | woman | 长沙 | 1
张三 | 21 | 1 | woman | 长沙 | 1
王五 | 25 | 3 | man | 上海 | 3
李白 | 23 | 2 | man | 湛江 | 2
李国 | 24 | 1 | woman | 长沙 | 1
(9 rows)
mydb=# select citys.name as 城市,array(select name from student where student.ci
ty=citys.id) as 学生 from citys;
城市 | 学生
------+------------------------
长沙 | {deepfuture,张三,李国}
湛江 | {未来,干哈,李白}
上海 | {艾丝凡,萨芬,王五}
(3 rows)
mydb=# select * from student;
name | age | city | sex
------------+-----+------+-------
艾丝凡 | 18 | 3 |
萨芬 | 19 | 3 |
未来 | 20 | 2 | man
干哈 | 18 | 2 | man
deepfuture | 20 | 1 | woman
张三 | 21 | 1 | woman
王五 | 25 | 3 | man
李白 | 23 | 2 | man
李国 | 24 | 1 | woman
(9 rows)
mydb=# select * from citys;
name | id
------+----
长沙 | 1
湛江 | 2
上海 | 3
(3 rows)
mydb=#
分享到:
相关推荐
- **子查询**:一个返回一行一列的SELECT查询,可以嵌套在其他查询中。 - **数组构造器**:可以创建包含数组的表,如`CREATE TABLE arr(f1 int[], f2 int[]);` - **表达式计算规则**:布尔短路,如`somefunc() OR...
手册中会详细介绍内置函数,如`echo`、`print`用于输出数据,`strlen`计算字符串长度,`strpos`查找子字符串位置,以及`array_push`和`array_pop`操作数组等。此外,还有错误处理和异常处理的相关函数,如`error_...
2. **字符串处理**:理解PHP中的字符串操作函数,如strlen()用于获取字符串长度,str_replace()进行字符串替换,strpos()查找子字符串位置,explode()和implode()用于字符串分割与合并。 3. **数组处理**:熟悉PHP...
你可以定义类,创建对象,使用构造函数和析构函数,实现抽象方法和接口,以及使用魔术方法来处理特定情况。 5. **错误和异常处理** PHP提供了错误报告机制,可以通过配置error_reporting和display_errors来控制。...
比如,通过`class`关键字定义类,`extends`关键字实现继承,`public`、`private`、`protected`控制访问权限,以及`__construct`构造函数初始化对象。 错误处理和异常处理也是PHP开发中不可忽视的部分。PHP提供`...