w3resource_MySQL练习:Joins
w3resource_MySQL练习题:Joins
-- 1. 自然连接,MySQL自己判断多表的连接条件,分为内/外自然连接 select location_id, street_address, city, state_province, country_name from locations NATURAL JOIN countries -- 2. 多表连接,在from里连接多张表,通过where进行匹配 select l.location_id, l.street_address, l.city, l.state_province, c.country_name from locations as l, countries as c where l.country_id=c.country_id
-- 1. 多表连接 select e.first_name, e.last_name, e.department_id, d.department_name from employees as e, departments as d where e.department_id=d.department_id -- 2. 左连接(显然employees表数量远大于departments表) select e.first_name, e.last_name, e.department_id, d.department_name from employees as e left join departments as d on e.department_id=d.department_id
-- 1. 多表连接 select e.first_name, e.last_name, e.job_id, e.department_id, d.department_name from employees as e, departments as d, locations as l where e.department_id=d.department_id and d.location_id=l.location_id and l.city='London' -- 2. 左连接 select e.first_name, e.last_name, e.job_id, e.department_id, d.department_name from employees as e left join departments as d on e.department_id=d.department_id left join locations as l on d.location_id=l.location_id where l.city='London'
-- 1. 使用多表连接 select e1.employee_id, e1.last_name, e2.employee_id, e2.last_name from employees as e1, employees as e2 where e1.manager_id=e2.employee_id -- 2. 使用内连接 SELECT e.employee_id 'Emp_Id', e.last_name 'Employee', m.employee_id 'Mgr_Id', m.last_name 'Manager' FROM employees e join employees m ON (e.manager_id = m.employee_id);
-- 1. 通过where进行筛选
select first_name, last_name, hire_date
from employees
where hire_date>(
select hire_date from employees where last_name='Jones'
)
-- 2. 内连接
SELECT e.first_name, e.last_name, e.hire_date
FROM employees e
JOIN employees davies
ON (davies.last_name = 'Jones')
WHERE davies.hire_date < e.hire_date;
-- 要点:多表连接后,在新表做group by select d.department_name, count(*) from employees as e, departments as d where e.department_id=d.department_id group by e.department_id
-- 要点:datediff() SELECT employee_id, j.job_title, DATEDIFF(end_date, start_date) FROM job_history NATURAL JOIN jobs AS j WHERE department_id = 90;
-- 要点:以departments表为左表 select d.department_id, d.department_name, e.first_name from departments as d left join employees as e won d.manager_id=e.employee_id
-- 要点:以departments表为主表 select d.department_name, e.first_name, l.city from departments as d left join employees as e on d.manager_id=e.employee_id left join locations as l on d.location_id=l.location_id
-- 要点:group by分组计算组内均值 select job_id, avg(salary) from employees group by job_id
-- 要点:多表连接 SELECT job_title, first_name, salary-min_salary 'Salary - Min_Salary' FROM employees NATURAL JOIN jobs;
-- 要点:多表连接 select j.* from job_history as j, employees as e where j.employee_id=e.employee_id and e.salary>10000
-- 要点:datediff select e.first_name, e.last_name, e.hire_date, e.salary, datediff(now(), (e.hire_date)) as exp from departments as d, employees as e where d.manager_id=e.employee_id and datediff(now(), (e.hire_date))>15
w3resource_MySQL练习:Joins的更多相关文章
- SQL Tuning 基础概述07 - SQL Joins
N多年之前,刚刚接触SQL的时候,就被多表查询中的各种内连接,外连接,左外连接,右外连接等各式各样的连接弄的晕头转向. 更坑的是书上看到的各种表连接还有两种不同的写法, 比如对于表A,表B的查询 1, ...
- Part 7 Joins in sql server
Joins in sql server Advanced or intelligent joins in sql server Self join in sql server Different wa ...
- [HIve - LanguageManual] Joins
Hive Joins Hive Joins Join Syntax Examples MapJoin Restrictions Join Optimization Predicate Pushdown ...
- 转载: C#: Left outer joins with LINQ
I always considered Left Outer Join in LINQ to be complex until today when I had to use it in my app ...
- The dplyr package has been updated with new data manipulation commands for filters, joins and set operations.(转)
dplyr 0.4.0 January 9, 2015 in Uncategorized I’m very pleased to announce that dplyr 0.4.0 is now av ...
- ### 七种SQL JOINS
七种SQL JOINS 1.SELECT FROM TABLEA A LEFT JOIN TABLEB B ON A.Key=B.Key 2.SELECT FROM TABLEA A RIGHT JO ...
- MySQL Block Nested Loop and Batched Key Access Joins(块嵌套循环和批量Key访问连接)
Block Nested-Loop and Batched Key Access Joins Batched Key Access (BKA) Join算法通过index和join buffer访问j ...
- MySQL表与表之间的SQL Joins图介绍
下图很好的解释了各表之间SQL Joins之间的关系
- Lerning Entity Framework 6 ------ Joins and Left outer Joins
Joins allow developers to combine data from multiple tables into a sigle query. Let's have a look at ...
随机推荐
- 遇到的一些vue的问题
一.事件绑定中的事件处理方法后加不加括号问题 1.例如: click事件后加不加括号 a.@click = "getContent" b.@click = "getCon ...
- Datagridview强制结束编辑状态
DirectCast(dgvTab1.CurrentRow.DataBoundItem, DataRowView).EndEdit() dgvTab1.CommitEdit(DataGridViewD ...
- keil-rtx
OS:任务级设计,任务间耦合小:改变裸机前后台设计方案中后台任务轮训无优先级重要任务得不到确定性响应:伪并行,提高利用率. 在keilv4.74最后一个版本之后,KIELV5将KEIL-RTX该为CM ...
- IntelJ IDEA创建简单Java工程
1. 打开IDEA J 2017开发工具,如下图: 2.点击“Create New Project”,将打开以下图: 3.选择 “Java”,选择“Next”,打开下图: 4.“Create pro ...
- Java并发(一):基础概念
对于Java并发,我也是属初学阶段,用的参考书是:"Java并发编程实战",写博时也参考了很多类似主题的博客,博主意在记录自己的学习路程,供网友讨论学习之用; 周末写的差不多了,今 ...
- jsoup爬虫,项目实战,欢迎收看
import com.mongodb.BasicDBObject import com.mongodb.DBCollection import org.jsoup.Jsoup import org.j ...
- 《Ionic 2 实例开发》发布
Ionic 2系列教程集结成册,在百度阅读上架发布,名为<Ionic 2实例开发>(点击书名将打开地址:http://yuedu.baidu.com/ebook/ba1bca51e4189 ...
- Failed to crunch file
Failed to crunch file 编译时,出现以上错误,经过多次排除验证,原因尽然是因为路径字符太长了... 编译路径不能超过240个字符
- Linux Shell流程例子
#!/bin/bash read -p "input a dight:"echo $REPLY DATE=`date`echo "DATE is ${DATE}" ...
- Python+selenium之Page Object设计模式
Page Object是selenium自动化测试项目开发实践的最佳设计模式之一,他主要提现在对界面交互细节的封装,这样可以使测试案例隔你给加关注于业务而非界面细节,从而提高测试案例的可读性. Pag ...