Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/246.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 加入三个表_Php_Mysql - Fatal编程技术网

Php 加入三个表

Php 加入三个表,php,mysql,Php,Mysql,对于下面的连接查询,我想从第三个名为“comment”的MySQL表中提取一些数据。字段“submissionid”也是表“comment”中的第一个字段 对于“comment”表中的每个“submissionid”,我想计算一个名为“commentid”的字段 我该怎么做 提前感谢, 约翰 是的,你可以这样做,但是你将会遇到的问题是,如果登录有多个提交,并且提交有多个注释,那么你的结果可能很难解释 换句话说,如果您有10个登录,每个登录有5个提交,每个提交有8个评论,那么您将收回10 x 5

对于下面的连接查询,我想从第三个名为“comment”的MySQL表中提取一些数据。字段“submissionid”也是表“comment”中的第一个字段

对于“comment”表中的每个“submissionid”,我想计算一个名为“commentid”的字段

我该怎么做

提前感谢,

约翰


是的,你可以这样做,但是你将会遇到的问题是,如果登录有多个提交,并且提交有多个注释,那么你的结果可能很难解释

换句话说,如果您有10个登录,每个登录有5个提交,每个提交有8个评论,那么您将收回10 x 5 x 8=400行。现在你可以处理这个问题了,但是数据可能会失控

即:

SELECT s.loginid, s.title, s.url, s.displayurl, l.username, c.commentid
FROM submission s
JOIN login l ON s.loginid = l.loginid
LEFT JOIN comments c ON s.submissionid = c.submissionid
ORDER BY s.datesubmissed DESC
LIMIT 10

注意:我已将上述内容更改为使用ANSI SQL连接语法。你应该支持这个。它通常更容易阅读。

这不正是您在这里提出的问题吗:?我很难让它正常工作。谢谢。。。如果没有s.submissionid等于c.submissionid,这会起作用吗?@John no,你需要一个外部连接。让我修改一下。
SELECT s.loginid, s.title, s.url, s.displayurl, l.username, c.commentid
FROM submission s
JOIN login l ON s.loginid = l.loginid
LEFT JOIN comments c ON s.submissionid = c.submissionid
ORDER BY s.datesubmissed DESC
LIMIT 10