2011-03-15 84 views
1

我有具有以下結構的兩個MySQL表:加入兩個MySQL表

表1:

---ID---------NAME------- 
---1----- page name 1 --- 
---2----- page name 2 --- 
---3----- page name 3 --- 

表2:

----ID---PAGE ID---------NAME------ 
-----1-----1-------- page name 1 --- 
-----2-----2-------- page name 2 --- 
-----3-----3-------- page name 3 --- 
-----4-----1-------- page name 1 --- 
-----5-----2-------- page name 2 --- 
-----6-----3-------- page name 3 --- 
-----7-----1-------- page name 1 --- 
-----8-----2-------- page name 2 --- 
-----9-----3-------- page name 3 --- 

正如你所看到的在表2每頁都提到好幾次了。

我想加入表1表2只有最新的記錄表2,只有最新的三個記錄這種情況下! (「最新」意味着具有更高ID的記錄)是否可以使用mysql?

+2

什麼定義的 「最新錄像」?那些ID最高的人?你沒有列出的日期/時間字段? – 2011-03-15 14:30:16

+0

定義「最新」。我在Table2中看不到任何時間戳(這不是真正的表名,是嗎?) – 2011-03-15 14:30:40

+0

而且Table2中的哪個字段是與Table1相關的外鍵? – AbiusX 2011-03-15 14:31:49

回答

1

表2

----ID---PAGE ID---- 
-----1-----1-------- 
-----2-----2-------- 
-----3-----3-------- 
-----4-----1-------- 
-----5-----2-------- 
-----6-----3-------- 
-----7-----1-------- 
-----8-----2-------- 
-----9-----3-------- 

SELECT Table1.ID, PAGE_ID, NAME 
FROM Table1 
LEFT JOIN Table2 ON Table1.ID = Table2.PAGE_ID 
WHERE ... put your condition for latest if other when highest ID 
ORDER BY Table1.ID DESC 
LIMIT 3 
0
SELECT Table1.ID, PAGE_ID, NAME 
FROM Table1 
LEFT JOIN Table2 ON Table1.ID = Table2.PAGE_ID 
WHERE Table2.ID = MAX(Table2.ID) 
GROUP BY Table1.ID 
LIMIT 3 

應該工作