mysql 自连接查询

/*

自连接查询
自连接就是一个表和它自身进行连接,是多表连接的特殊情况。
在自连接查询中,要先在FROM字句中为表分别定义两个不同的别名,
然后使用这两个别名写出一个连接条件。

条件比较在同一个表中的情况
*/

--任务1:查询课程类别相同但是开课系部不同的课程信息
--                 要求显示课程编号、课程名称、课程类别与系部
--                 编号,并按照课程编号升序排列查询结果。

SELECT DISTINCT c1.CouNo 课程编号, c1.CouName 课程名称, 
                                   c1.Kind 课程类别, c1.DepartNo 系部编号
FROM Course c1 JOIN Course c2 ON c1.Kind=c2.Kind  AND c1.DepartNo!=c2.DepartNo
ORDER BY c1.CouNo;

原文地址:https://www.cnblogs.com/draymond/p/10327751.html

时间: 2024-08-10 09:36:52

mysql 自连接查询的相关文章

Mysql数据库连接查询

Mysql数据库连接查询 连接是关系数据库模型的主要特点.连接查询是关系数据库中最主要的查询,主要包括内连接.外连接等.通过连接运算可以实现多个表查询.当查询数据时,通过连接操作查询出存放在多个表中的不同实体信息.当两个或多个表中存在相同意义的字段时,便可以通过这些字段对不同的表进行连接查询.如下将介绍多表之间的内连接查询.外连接查询以及复合条件连接查询. 内连接查询 内连接(inner join)使用比较运算符进行表间列数据的比较操作,并列出这些表中与连接条件相匹配的数据行,并组合成新的记录.

MySQL数据查询

要点概论 1. SELECT语句的语法 2. 简单查询 3. 连接查询 4.联合查询 5. 子查询 6. 正则表达式查询 7. 通过正则表达式查询数据 1. SELECT 语句的语法 http://www.cnblogs.com/HZY258/p/8496391.html 2. 简单查询 2.1 获取所有列 SELECT * FROM table_name; 如果数据表中的列较少,也可以通过列出所有列名的方式获取数据. 2.2 获取指定列 SELECT 列名列表 FROM table_name;

mysql复杂查询

所谓复杂查询,指涉及多个表.具有嵌套等复杂结构的查询.这里简要介绍典型的几种复杂查询格式. 一.连接查询 连接是区别关系与非关系系统的最重要的标志.通过连接运算符可以实现多个表查询.连接查询主要包括内连接.外连接等. 假设有Student和Grade两个表如下: +-----+--------+-------+ +-----+------------+--------+ | sID | sName | sDept | | gID | gCourse | gScore | +-----+-----

如何在MySQL中查询每个分组的前几名【转】

问题 在工作中常会遇到将数据分组排序的问题,如在考试成绩中,找出每个班级的前五名等. 在orcale等数据库中可以使用partition语句来解决,但在mysql中就比较麻烦了.这次翻译的文章就是专门解决这个问题的 原文地址: How to select the first/least/max row per group in SQL 翻译 在使用SQL的过程中,我们经常遇到这样一类问题:如何找出每个程序最近的日志条目?如何找出每个用户的最高分?在每个分类中最受欢迎的商品是什么?通常这类"找出每

mysql子查询慢的问题

当你在用explain工具查看sql语句的执行计划时,若select_type 字段中出现"DEPENDENT SUBQUERY"时,你要注意了,你已经掉入了mysql子查询慢的"坑"...下面我们来看一个具体的例子 有这样一条查询语句: SELECT gid,COUNT(id) as count FROM shop_goods g1 WHERE status =0 and gid IN (SELECT gid FROM shop_goods g2 WHERE si

Mysql——子查询

子查询的位置: select 中.from 后.where 中.group by 和order by 中无实用意义. 子查询分为如下几类: 1,标量子查询:返回单一值的标量,最简单的形式. 2,列子查询:返回的结果集是 N 行一列. 3,行子查询:返回的结果集是一行 N 列. 4,表子查询:返回的结果集是 N 行 N 列. 可以使用的操作符:= > < >= <= <> ANY IN SOME ALL EXISTS 标量子查询:是指子查询返回的是单一值的标量,如一个数字

mysql 怎么查询出,分组后的总条数。。。也就是有多少组数。。。。怎么写

SELECT COUNT(*) AS 多少组数FROM( SELECT id FROM 表 GROUP BY id) subQuery;Mysql,有一个表含有以下字段,uid 发帖人id,title 发帖标题,tc 发帖内容,time 发帖时间,用一条语句算出昨天发帖书大于10的,一共有多少人? select count(*) from (select distinct startperson_id,count(startperson_id) as num from apphome_finan

Mysql慢查询日志脚本

#!/bin/bash LOG=/diskb/mysql/slowlog/   #定义日志存储路径 DATE=`date +"%Y-%m-%d"`   #定义时间参数 user=root                                 #填写MySQL账户信息 passwd=123456 mysql -u$user -p$passwd -e "set global slow_query_log=0" #停止mysql慢查询日志 mysql -u$us

mysql慢查询日志分析工具mysqlsla

一.介绍    mysqlsla是一个分析mysql慢日志的工具,可以分析出慢查询的原因,包括执行某条sql出现的次数及在slow log数据的百分比.执行时间.等待销的时间等. 公司的数据库有很多慢查询日志,导致的系统的负载很高,而mysql慢查询日志文件内容格式不太好看,经推荐使用mysqlsla:使用方便,操作简单. 二.安装mysqlsla 系统环境 CentOS release 6.6 (Final) 2.6.32-504.el6.x86_64 官网已经不能下载,所需要的文件已在百度云