2017-01-18 169 views
0

我在同一个数据库中的两个表:MYSQL - 选择两个字段是相等的两个表

T1 - 
ID 
Make 
Model 
Series 
Variant 
MSN 

T2- 
ID 
Make 
Model 
MSN 
Reg 
location 
uname 
notes 

T1是飞机表,T2是记录表。在T2中,我们可以为每架飞机提供多个日志 - 例如,我可以在曼彻斯特和利物浦登记一架G-VNEW登记的飞机。所以如果这架飞机晚些时候被卖给另一家公司,然后它改变为G-DCAA,我可以再次在不同地点看到同一架飞机。

我想创建一个输出在我的网页上的列表,将显示T2中的所有字段,它们与T1中的Make/Serial相同。这是沿着正确的线路:

Select * from T2 where T2.Make=T1.Make and T2.MSN=T1.MSN order by T2.date DESC 

推理behined化妆/ MSN的选择是波音/空客可能有飞机与同MSN,不可能的,但可能的。

+0

我没有看到任何一个表中的串行。串行是一个独特的领域?如果是这样,你为什么需要Make? – kojow7

+0

嗨是的,我的坏 - 串行 - 应该是MSN(Manafacturers序列号)序列号可以适用于两个不同的制造商的两个不同的飞机。 –

+1

我不明白你为什么要复制Make,Model。 T1中的ID将是唯一主键;然后在T2中创建一个LogID,这将是T2的唯一主键,并且在T2中也有ID作为列,以便将其绑定回特定的T1条目。或者,也许我错过了一些东西.... – user3741598

回答

0

您必须在这里使用INNER JOIN,因为您正在使用其他表格来比较值。

Select * from T2 
Inner Join T1 
On T2.Make=T1.Make 
where T2.Make=T1.Make and T2.Serial=T1.Serial 
Order By T2.date DESC 

试试这个......希望它会适合你...会等待你的反馈。