2017-09-16 35 views
1

我需要做一個MySQl查詢來從數據庫中的多個表中獲取數據,並且我一直在嘗試,但似乎無法做到正確。下面是我的表格和我想要的例子。MySQL與四個表(比賽和結果表)的多個表連接

的數據庫表:汽車的

+-------------------+ 
|  Car  | 
+-------------------+ 
| Car_ID (Int)  | 
| Car_Name (String) | 
+-------------------+ 

例子:

Car_ID: 1 
Car_Name: BMW M3 

+-------------------+ 
|  Race  | 
+-------------------+ 
| Race_ID (Int)  | 
| Race_Car1 (Int) | 
| Race_Car2 (Int) | 
| Race_Number (Int) | 
+-------------------+ 

種族的例子:

Race_ID: 11 
Race_Car1: 3 
Race_Car2: 2 
Race_Number: 6 

+-------------------+ 
|  Result  | 
+-------------------+ 
| Result_ID (Int) | 
| Result_Number (Int)| 
| Result_Result (Int)| 
+-------------------+ 

結果的示例:

Result_ID: 1 
Result_Number: 6 
Result_Result: 2 

+-------------------+ 
| ResultType  | 
+-------------------+ 
| ResultType_ID (Int)| 
| ResultType_Name (String)| 
+-------------------+ 
01與resultType的

例子:

ResultType_ID: 1 
ResultType_Name: Car1 Win 

我想將加入汽車表種族表Race_Car1和Race_Car2領域的查詢,然後將結果從結果表Result_Number必須與Race_Number領域,也可加入Result_Type必須連接到Result_Result字段中。

基本上我想這樣的結果:

Race_Car1 Race_Car2 Result_Result Race_Number 
BMW M3 | Ford Focus RS | Car1 Win | 6 
+1

請顯示您的代碼 – scaisEdge

回答

0

你可以使用一個自連接爲加盟車moltiple時間

在我的答案我展示勝者的車名,而不是CAR 1或CAR2

select a.car_name car_1, b.car_name car_2, c.car_name winner, d.race_nymber 
    from race d 
    inner join car a on a.car_ID = d.race_car_1 
    inner join car b on b.car_ID = d.race_car_2 
    inner join result t on t.Result_Number = d.Result_Number 
    inner join car c on c.car_ID = t.Result_Result 
+0

非常感謝。這正是我所期待的。 –