Сортировать запрос MySQL по метке даты в другой таблице - PullRequest
0 голосов
/ 18 апреля 2011

Я хочу создать запрос для получения списка идентификаторов проектов для вошедшего в систему пользователя, отсортированных от последних к наименее последним?

У меня есть 2 таблицы MySQL:

  • Таблица 'project_access' содержит 'project_id' и'member_id ', который присоединяет пользователей к каждому идентификатору проекта.
  • Таблица' projects 'содержит соответствующий' project_id 'и все подробности о проекте, включая' updated ', который являетсяdatetamp.

Это то, что я получил до сих пор:

SELECT project_id FROM project_access WHERE member_id='" . $_SESSION["myid"] . "'  ORDER BY updated DESC"

'updated' фактически находится в другой таблице.Как мне написать это в запросе?

Спасибо

Ответы [ 2 ]

1 голос
/ 18 апреля 2011

это будет делать то, что вы после.

"SELECT 
    projects.project_id
FROM project_access 
INNER JOIN projects ON (project_access.project_id = projects.project_id)
WHERE project_access.member_id='" . $_SESSION["myid"] . "'  
ORDER BY projects.updated DESC"

Я предлагаю вам прочитать некоторые базовые учебные пособия по запросам, хотя они особенно касаются объединений.Это должно помочь http://www.sql -tutorial.net / SQL-JOIN.asp

1 голос
/ 18 апреля 2011

Вы используете предложение JOIN следующим образом:

SELECT projects.project_id, projects.updated
FROM project_access 
INNER JOIN projects
ON project_access.project_id=projects.project_id 
WHERE project_access.member_id='" . $_SESSION["myid"] . "'  
ORDER BY projects.updated DESC

Примечание: вы должны прочитать о предложениях JOIN:

http://dev.mysql.com/doc/refman/5.0/en/join.html

.. приведенный выше запрос может быть подходящим или нет в зависимости от ваших требований и структуры ваших таблиц.

Вам также следует убедиться, что вы правильно экранируете строки при работе с операторами SQL, чтобы избежать атак внедрения SQL:

http://php.net/manual/en/function.mysql-real-escape-string.php

http://en.wikipedia.org/wiki/SQL_injection

Ваш код должен читать:

WHERE project_access.member_id='" . mysql_real_escape_string($_SESSION["myid"]) . "'

(я предполагаю, что вы используете здесь PHP).

Учебники по SQL JOIN:

http://www.halfgaar.net/sql-joins-are-easy

http://www.tizag.com/mysqlTutorial/mysqljoins.php

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...