2017-01-18 72 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 

試試這個......希望它會適合你...會等待你的反饋。