Mysql连接查询三个具有多列的表

Mur*_*lek 10 mysql join relational-database

我有三个这样的表:

专业化

sid | s_name
--------------
 1  | test 1
 2  | test 2  
Run Code Online (Sandbox Code Playgroud)

人

pid | name | sid
------------------
 1  | ABC  |  1
 2  | XYZ  |  2
Run Code Online (Sandbox Code Playgroud)

定时

tid | time_from | time_to  | pid
----------------------------------
 1  | 08:00:00  | 10:00:00 |  1
 2  | 20:00:00  | 22:00:00 |  1
 3  | 09:00:00  | 14:00:00 |  2
 4  | 19:00:00  | 20:00:00 |  2
Run Code Online (Sandbox Code Playgroud)

**我想得到像这样的结果*

pid | name | s_name | time_from  | time_to
--------------------------------------------
 1  | ABC  | test 1 | 08:00:00   | 10:00:00
Run Code Online (Sandbox Code Playgroud)

描述:
所有三个表都已连接.
我希望所有的记录,其中
专业化 ID ="1"
的人的名字一样 "ABC"
时间是在08年间:00:00'和'10:00:00' .

我尝试了几种mysql连接组合,但无法正确获取数据.

Joh*_*Woo 20

你可以用INNER JOIN它,

SELECT  a.pid, a.name,
        b.sname,
        c.time_from,
        c.time_to
FROM    person a
        INNER JOIN specialisation b
            ON a.sid = b.sid
        INNER JOIN Timing c
            ON a.pid = c.pid
WHERE   a.sid = 1 and 
        a.name='ABC'  AND 
        c.time_from >= '08:00:00' AND c.time_to <= '10:00:00'
Run Code Online (Sandbox Code Playgroud)