2011-08-30 172 views
1

我有2个表格,页面和链接页面。
内的页面我有下列字段:订购mysql查询?

  • 的pageID(页面的标识符),
  • startmemberID(创建该页面的成员的ID),
  • 的startDate(日期页面创建)。

在LinkPages我:

  • 的pageID(与页面链接),
  • linkmemberID(成员与页面链接),
  • joinDate(与页面链接日期成员) 。

我会用什么sql查询来获取具有特定id的页面上的所有信息,然后在页面启动日期后对它进行排序。

我能走到今天:

SELECT * FROM LinkPages WHERE linkmemberID='MEMBERID' LIMIT 5 

但很明显,我在这里没有命令他们,我会需要使用连接?

非常感谢,

回答

5

试试这个:

SELECT * FROM LinkPages 
INNER JOIN Pages ON Pages.pageID = LinkPages.pageID 
WHERE linkmemberID='MEMBERID' 
ORDER BY startDate DESC 
LIMIT 5 
+1

工作一种享受!谢谢! – Jai

2
SELECT lp.pageID, lp.linkmemberID, lp.joinDate 
FROM LinkPages lp, Pages p 
WHERE lp.linkmemberID='MEMBERID' AND lp.pageID = p.pageID 
ORDER BY p.startDate DESC 
LIMIT 5 
+0

哈哈!!我迟了2秒;-) – HBublitz

0
SELECT lp.* 
FROM LinkPages lp, Pages p 
WHERE lp.pageId = p.pageId 
AND lp.linkmemberID='MEMBERID' 
ORDER BY p.startDate 
LIMIT 5 

遗憾 - 忘记了ORDER BY ...

1

你有两个选择,你可以JOIN或者你可以使用子查询:

SELECT * FROM LinkPages WHERE linkmemberID='MEMBERID' 
ORDER BY 
    (SELECT startDate FROM Pages WHERE Pages.pageID = LinkPages.PageID) DESC 
LIMIT 5 

良好的措施,这里的加盟:

-- be sure to use L.* here, otherwise you get all of the columns from 
-- pages as well 
SELECT L.* FROM LinkPages L 
    INNER JOIN Pages P ON P.pageID = L.pageID 
WHERE linkmemberID='MEMBERID' 
ORDER BY P.startDate DESC LIMIT 5