我有三个名为的表
**Student Table**
-------------
id name
-------------
1 ali
2 ahmed
3 john
4 king
**Course Table**
-------------
id name
-------------
1 physic
2 maths
3 computer
4 chemistry
**Bridge**
-------------
sid cid
-------------
1 1
1 2
1 3
1 4
2 1
2 2
3 3
3 4
4 1
4 2
Run Code Online (Sandbox Code Playgroud)
现在用他研究过的课程名称来显示学生姓名,
**Result**
---------------------------
Student Course
---------------------------
ahmed physic
ahmed maths
ahmed computer
ahmed chemistry
ali physic
ali maths
john computer
john chemistry
king physic
king maths
Run Code Online (Sandbox Code Playgroud)
我构建以下查询
select s.name as Student, c.name as Course from student s, course c join bridge b on c.id = b.cid order by s.name
Run Code Online (Sandbox Code Playgroud)
但它没有返回所需的结果......
如果我想找到谁是其他经理,那么规范化形式会是什么:
**employee**
-------------------
id name
-------------------
1 ali
2 king
3 mak
4 sam
5 jon
**manage**
--------------
mid eid
--------------
1 2
1 3
3 4
4 5
Run Code Online (Sandbox Code Playgroud)
并希望得到这个结果:
**result**
--------------------
Manager Staff
--------------------
ali king
ali mak
mak sam
sam jon
Run Code Online (Sandbox Code Playgroud)
Red*_*ter 187
使用ANSI语法,如何加入表格将更加清晰:
SELECT s.name as Student, c.name as Course
FROM student s
INNER JOIN bridge b ON s.id = b.sid
INNER JOIN course c ON b.cid = c.id
ORDER BY s.name
Run Code Online (Sandbox Code Playgroud)
rai*_*syn 138
只需使用:
select s.name "Student", c.name "Course"
from student s, bridge b, course c
where b.sid = s.sid and b.cid = c.cid
Run Code Online (Sandbox Code Playgroud)
PHP*_*ari 16
用于规范化表格
select e1.name as 'Manager', e2.name as 'Staff'
from employee e1
left join manage m on m.mid = e1.id
left join employee e2 on m.eid = e2.id
Run Code Online (Sandbox Code Playgroud)
小智 5
SELECT *
FROM user u
JOIN user_clockits uc ON u.user_id=uc.user_id
JOIN clockits cl ON cl.clockits_id=uc.clockits_id
WHERE user_id = 158
Run Code Online (Sandbox Code Playgroud)