好的,这是我的问题。 我正在向现有数据库添加一个表来存储项目注释。
“工作日志”是包含项目的表格 “worklognotes”是包含项目注释的表格
注释将像讨论线程一样显示。 worklognotes 列设置如下 id、worklog_id、timestamp、notes。
“id”是表的唯一标识。 “worklog_id”是笔记保存的项目的 ID,存储在另一个表中。 “时间戳”是一个时间戳 “笔记”是关于该项目的实际正在进行的笔记。一个项目可能有很多注释。
查看下面的数据库查询。我加入了两个查询“这是我的第一次加入,所以我不确定我是否做对了。” 它正在读取两个表中的信息并显示它。 但是下面的代码显示了“worklog”中在“worklognotes”表中有记录的每个条目。 我需要它来显示“worklog”中的一个条目和“worklognotes”中的许多注释
你能帮忙或建议方向吗?
$connection = mysql_connect ("localhost", "user", "pass") or die ("I cannot connect to the database.");
$db = mysql_select_db ("database", $connection) or die (mysql_error());
$query = "SELECT * FROM worklog ";
$query .= "JOIN worklognotes ON worklog_id = worklognotes.worklog_id ";
$query .= "WHERE worklognotes.worklog_id=worklog.id ORDER BY worklognotes.id DESC";
最佳答案
您创建 JOIN 的查询看起来是正确的,但您的 where 子句是多余的。试试这个:
SELECT *
FROM worklog
JOIN worklognotes ON worklog_id = worklognotes.worklog_id
ORDER BY worklognotes.id DESC
但是对于您的特定要求(从一个表中获取一条记录并从另一个表中获取多条记录)似乎不需要加入。我认为最好运行两个单独的查询,否则您将在结果集中的每一行中重复获得第一个表中的所有数据。
关于php - 无法理解如何正确连接 mySQL 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4662872/