使用单个表从3个表中获取数据的查询仅包含外键

时间:2014-10-26 07:36:04

标签: mysql sql database mysql-workbench

我在集群,生产,测试用例,cluster_production_testcases

下面有4个表
Cluster table
|id_cluster(PK)|cluster_name|Cluster_ipaddress|
|1             |a1          |10.x1.sss.xxx|
|2             |a1          |10.x2.sss.xxx|
|3             |a2          |10.x3.sss.xxx|

Production table
|ip_production(PK) | production_name|
|1                 |Test1 |
|2                 |Test2 |


TestCases table
|id_testcases(PK)|testcase_name|ip_production(FK)|
|1               |Hello1       |1 |
|2               |Hello2       |1 |
|3               |Hello2       |2 |

Cluster_Production_Testcases
|id_cpt(PK) | id_cluster(FK) | id_production(FK)  |
|1          | 1              | 1  |
|2          | 2              | 1  |
|3          | 1              | 2  |
|4          | 2              | 2  |

如何使用cluster_name表格使用主键和外键将所有链接在一起的cluster_ipaddressproduction_nametestcase_namecluster_production_testcases

1 个答案:

答案 0 :(得分:1)

尝试使用隐式(也可以使用ANSI)join:

SELECT c.cluster_name, c.cluster_ipaddress, p.production_name, t.testcase_name
FROM  Cluster c, Production p, Testcases t, Cluster_production_Testcases cpt
WHERE cpt.id_cluster = c.id_cluster
AND   cpt.id_production = p.ip_production
AND   p.ip_production = t.ip_production