2011-03-15 80 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 

应该工作