sql查询

sql方案:SELECT (SELECT  COUNT(DISTINCT(name))  FROM 表名) num,* FROM
 表名

是因为Aric未有对应d_name和function新闻,所以体现null

 

内连接查询

结果集是 
id name 
1 张三
2 张三
3 李四
4 王五
5 王五
自身想询问出有多少不重名的人的多少,并展现在每一行结果集里面
结果如下:
num id name 
3     1   张三
3     2   张三
3     3   李四
3     4   王五
3     5   王五

连年查询是将五个或多个以上的表按某些条件连接起来,从中选取要求的多少

上面的表中也同样运用这一字段

复制代码 代码如下:

图片 1

参考表:employee

唯独出于employee表中有个别字段没有相应,因而最后一行记录有突显NULL

右连接查询

mysql> SELECT num, name, employee.d_id, d_name, function
    -> FROM employee RIGHT JOIN department
    -> ON employee.d_id=department.d_id;
+——+——–+——+———–+————–+
| num  | name   | d_id | d_name    | function     |
+——+——–+——+———–+————–+
|    1 | 张三   | 1001 | 科技(science and technology)部    | 研究开发产品     |
|    2 | 李四   | 1001 | 科学技术部    | 研究开发产品     |
|    3 | 王五   | 1002 | 生产部    | 生产成品     |
| NULL | NULL   | NULL | 出卖部    | 策划发卖     |
+——+——–+——+———–+————–+
 rows in set (0.00 sec)

当不相同的表中存在表示一致意义的字段时,可以经过该字段来…

外查询也急需通过点名字段来扩充延续,当该字段取值相等时,能够查询出该记录

mysql> SELECT num, name, employee.d_id, d_name, function
    -> FROM employee LEFT JOIN department
    -> ON employee.d_id=department.d_id;
+——+——–+——+———–+————–+
| num  | name   | d_id | d_name    | function     |
+——+——–+——+———–+————–+
|    1 | 张三   | 1001 | 科学技术部    | 研究开发产品     |
|    2 | 李四   | 1001 | 科技(science and technology)部    | 研究开发产品     |
|    3 | 王五   | 1002 | 生产部    | 生产产品     |
|    4 | Aric   | 1004 | NULL      | NULL         |
+——+——–+——+———–+————–+
 rows in set (0.00 sec)

复制代码 代码如下:

复合条件连接查询

tips:连年查询中采用最多的是内接连查询,而外连接查询利用频率比较低

内连接查询只会询问完全合营的结果,此处使用d_id字段举办连接

当两张表含有同样意义的字段(能够分歧名)时就足以开展一连查询