Заказываете запрос MySQL? - PullRequest
       2

Заказываете запрос MySQL?

1 голос
/ 30 августа 2011

У меня есть 2 таблицы, Pages и LinkPages.
В пределах Страниц у меня есть поля:

  • pageID (идентификатор страницы),
  • startmemberID (идентификатор участника, который создал страницу),
  • startDate (дата создания страницы).

В LinkPages у меня есть:

  • pageID (для связи со страницей),
  • linkmemberID (член, связывающийся со страницей),
  • joinDate (дата участника, связанного со страницей).

Какой SQL-запрос я бы использовал, чтобы получить всю информацию на страницах с определенным идентификатором, а затем упорядочить ее по дате запуска страницы.

Я получил это далеко:

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

но, очевидно, я не заказывал их здесь, нужно ли мне использовать соединение?

Большое спасибо,

Jai

Ответы [ 4 ]

5 голосов
/ 30 августа 2011

Попробуйте это:

SELECT * FROM LinkPages
INNER JOIN Pages ON Pages.pageID = LinkPages.pageID
WHERE linkmemberID='MEMBERID'
ORDER BY startDate DESC
LIMIT 5
2 голосов
/ 30 августа 2011
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
1 голос
/ 30 августа 2011

У вас есть два варианта: либо вы можете 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
0 голосов
/ 30 августа 2011
SELECT lp.* 
FROM LinkPages lp, Pages p 
WHERE lp.pageId = p.pageId
AND lp.linkmemberID='MEMBERID' 
ORDER BY p.startDate
LIMIT 5

извините - забыл ЗАКАЗАТЬ ...

...