将3个MYSQL表与2个不同的唯一键连接在一起

我有以下三个表格,因为在这三个表格之间没有唯一的密钥,我无法加入

计算机,客户和计算机驱动器

*Table Computers*
ComputerID  ClientID    Name        Domain      UserName    OS
========================================================================
1           1           WS01        ABC        Admin        7
2           1           WS02        ABC        Admin        7
3           1           WS03        ABC        Admin        7
4           2           CH21        CORP       Admin        7
5           2           CH22        CORP       Admin        7
6           3           LT33        WGE        Admin        7


*Table Clients*
ClientID    Client Name 
=======================
1       Company1
2       Company2
3       Company3

*Table Drives*
DriveID  ComputerID Letter Size Free Missing FileSystem
======================================================================
1       1       C       102400      100000      0       NTFS
2       1       D       102400      100000      0       NTFS
3       1       E       102400      100000      1       FAT32
4       2       C       102400      100000      0       NTFS
5       3       C       102400      100000      0       NTFS
6       4       C       102400      100000      0       NTFS
7       4       F       102400      100000      0       NTFS
8       4       E       102400      100000      1       FAT32
9       4       D       102400      100000      0       NTFS
10      5       C       102400      100000      0       NTFS
11      5       D       102400      100000      0       NTFS
12      6       C       102400      100000      0       NTFS

我有以下查询:

SELECT cl.Name, comp.Name, dr.`Letter`, dr.`Free`,dr.`Size`,dr.`FileSystem`,            
dr.`Missing`   
FROM clients AS cl
INNER JOIN computers AS comp ON comp.`ClientID` = cl.clientid
LEFT OUTER JOIN drives AS dr ON dr.`ComputerID` = comp.`ComputerID` 

我期待以下结果

Expected Result:
ClientName ComputerName Letter Free     Size        Filesystem  Missing
=======================================================================
Company1    WS01        C       100000      102400      NTFS        0
Company1    WS01        D       100000      102400      NTFS        0
Company1    WS01        E       100000      102400      NTFS        1
Company1    WS02        C       100000      102400      NTFS        0
Company1    WS03        C       100000      102400      NTFS        0
Company2    CH21        C       100000      102400      NTFS        0
Company2    CH21        F       100000      102400      NTFS        0
Company2    CH21        E       100000      102400      NTFS        1
Company2    CH21        D       100000      102400      NTFS        0
Company2    CH22        C       100000      102400      NTFS        0
Company2    CH22        D       100000      102400      NTFS        0
Company3    LT33        C       100000      102400      NTFS        0

当我运行上面显示的查询时,有人可以解释为什么我缺少行.我没有得到预期的结果.当所有三个表之间没有唯一键时,它们是否还提供了将3个表正确连接在一起的方法

最佳答案 这一切似乎对我有用:

http://sqlfiddle.com/#!6/f5d89/1

它是在sql2014中,但我不认为SQL风格会妨碍这里.

您认为缺少哪些行?

点赞