-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathjoins_lecture.sql
66 lines (54 loc) · 1.52 KB
/
joins_lecture.sql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
CREATE DATABASE join_test_db;
USE join_test_db;
CREATE TABLE roles
(
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
name VARCHAR(100) NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE users
(
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
name VARCHAR(100) NOT NULL,
email VARCHAR(100) NOT NULL,
role_id INT UNSIGNED DEFAULT NULL,
PRIMARY KEY (id),
FOREIGN KEY (role_id) REFERENCES roles (id)
);
INSERT INTO roles (name)
VALUES ('admin');
INSERT INTO roles (name)
VALUES ('author');
INSERT INTO roles (name)
VALUES ('reviewer');
INSERT INTO roles (name)
VALUES ('commenter');
INSERT INTO users (name, email, role_id)
VALUES ('bob', '[email protected]', 1),
('joe', '[email protected]', 2),
('sally', '[email protected]', 3),
('adam', '[email protected]', 3),
('jane', '[email protected]', null),
('mike', '[email protected]', null);
SELECT users.name AS user_name,
roles.name AS role_name
FROM users,
roles;
USE employees;
SELECT last_name, salary
FROM employees
NATURAL JOIN salaries;
SELECT salary
FROM salaries s
JOIN dept_emp de ON s.emp_no = de.emp_no
JOIN departments d ON de.dept_no = d.dept_no
JOIN employees e ON e.emp_no = de.emp_no
WHERE d.dept_name = 'Research';
SELECT CONCAT(first_name, ' ', last_name) AS name
FROM employees e
NATURAL JOIN dept_emp de
NATURAL JOIN departments d
WHERE d.dept_name = 'Research';
SELECT CONCAT(first_name, ' ', last_name) AS name
FROM employees salaries
JOIN dept_emp;