MySQL - 使用多个表和关系进行查询

时间:2017-11-08 19:05:51

标签: mysql

我对数据库一般都很陌生。我有一个小项目,我正在工作,我被困在我需要的查询。我正在使用MySQL。这是我的设置:

我有4张桌子:

1: BoeingModels
B_ID | B_ModelName | B_ModelCode | B_Registrations
_____|_____________|_____________|_________________
  1  |  Boeing 737 |  BOE-737800 |      500
  2  |  Boeing 787 |  BOE-787100 |      126

2: AirbusModels
A_ID | A_ModelName | A_ModelCode | A_Registrations
_____|_____________|_____________|_________________
  1  | Airbus A330 |   AB-A330   |      418
  2  | Airbus A380 |   AB-A380   |      126

3: AircraftParts
P_ID | PartNumber | PartName
_____|____________|__________
  1  |  J-504414  | Baggage Door
  2  |  K-774821  | Lavatory Door

4: Part2Aircraft
P2A_ID | P_ID* | B_ID* | A_ID*
_______|_______|_______|_______
   1   |   2   |   2   |
   2   |   1   |   1   |
   3   |   1   |       |   1 
   4   |   2   |       |   2

正如您可能看到的,多个部件可以应用于同一架飞机,同一部件可以应用于多架飞机。 (*)表示外键。我遇到的问题是编写一个显示我需要的信息的查询。如果可能的话,以下是我希望显示的数据:

PartNumber | Applicable Aircraft
_________________________________
 J-504414  | Boeing 737, Airbus A330
 K-774821  | Boeing 787, Airbus A380

我已经尝试使用谷歌搜索和搜索论坛,但我还没有与语言协调一致,所以试图找到一个我能理解的与我类似的情况是不成功的。你能帮我解决一下这个问题吗?

1 个答案:

答案 0 :(得分:0)

我现在没办法测试这个......但是

获取所有零件编号及其适用的飞机...加入表格的简单查询(不包括您想要对输出执行的任何格式设置)

选择AircraftParts.PartNumber,BoeingModels.B_ModelName,AirbusModels.A_ModelName 来自AircraftParts 加入Part2Aircraft 在AircraftParts.P_ID = Part2Aircraft.P_ID 加入BoeingModels 在Part2Aircraft.B_ID = BoeingModels.B_ID 加入AirbusModels 在Part2Aircraft.A_ID = AirbusModels.A_ID;