php - 无法理解如何正确连接 mySQL 表

标签 php mysql join

好的,这是我的问题。 我正在向现有数据库添加一个表来存储项目注释。

“工作日志”是包含项目的表格 “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/

相关文章:

php - 模型查询错误中的 Phalcon 日期时间

php - 需要一段日期时间的第一天和最后一天

MySQL 定位每天的第一个和最后一个事件

php - 无法通过套接字 '/var/run/mysqld/mysqld.sock' 连接到本地 MySQL 服务器 (13)

mysql - 如何从表 1 中检索在 MySQL 中表 2 中没有相关行的行

sql-server - 为什么 Access 按表分解 JOIN 查询,然后将每个查询分别传递给 ODBC (SQL Server)?

python - pandas 按此列连接/合并/连接只有一列的多个数据帧

php - 是否可以将 font Awesome 图标制作为占位符中的按钮?

php - laravel:在 ubuntu 16.04 中找不到命令如何修复..?

java.sql.SQLException : No suitable driver found for jdbc:mysql://localhost:3306/db 异常