gpt4 book ai didi

mysql - 按另一个表中的时间戳对 MySQL 查询进行排序

转载 作者:行者123 更新时间:2023-11-29 09:10:33 24 4
gpt4 key购买 nike

我想构建一个查询来返回已登录用户的项目 ID 列表,按最近到最近的顺序排序?

我有 2 个 MySQL 表:

  • 表“project_access”包含“project_id”和“member_id”,用于将用户附加到每个项目 ID。
  • 表“projects”包含匹配的“project_id”以及有关项目的所有详细信息,其中包括“updated”(日期戳)。

这是我到目前为止所得到的:

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

“已更新”实际上在另一个表中。如何将其写入查询中?

谢谢

最佳答案

您使用 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 注入(inject)攻击:

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

关于mysql - 按另一个表中的时间戳对 MySQL 查询进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5697448/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com