Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.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 Mysql,无法获得正确的结果_Mysql - Fatal编程技术网

PHP Mysql,无法获得正确的结果

PHP Mysql,无法获得正确的结果,mysql,Mysql,我试图将两个表合并在一起,但我无法得到我想要的结果 因此,我所寻找的结果是,我希望能够“呼应”出用户参与的所有主题,通过创建主题或在主题内发表帖子/评论 我试过这样的方法: SELECT * FROM Topics LEFT JOIN Posts ON Topics.topic_creator = 'AAAA' OR Posts.Post_creator = 'AAAA' 但是使用这个sql我并没有真正得到结果,它给了我多个相同的Topic\u id样本,

我试图将两个表合并在一起,但我无法得到我想要的结果

因此,我所寻找的结果是,我希望能够“呼应”出用户参与的所有主题,通过创建主题或在主题内发表帖子/评论

我试过这样的方法:

SELECT * 
FROM Topics 
LEFT JOIN Posts ON Topics.topic_creator = 'AAAA' 
                OR Posts.Post_creator = 'AAAA'
但是使用这个sql我并没有真正得到结果,它给了我多个相同的
Topic\u id
样本,有时它只是打印出所有的主题/帖子

因此,我正在使用的表是:

表1-主题:

表2-员额

如果有更有经验的人愿意帮助我解决这个PHP问题,我将不胜感激


提前感谢

您可以使用列page\u id连接两个表,以便执行以下操作:

SELECT * 
FROM Topics 
INNER JOIN Posts ON Topics.Page_id = Posts.Page_id 
WHERE Posts.Post_creator = 'the_name';
这只是一个例子,我希望它能帮助你。

试试这个

SELECT * FROM Topics t LEFT JOIN Posts p ON t.topic_creator = p.Post_creator 

试试这样:

SELECT DISTINCT * 
FROM Topics 
LEFT JOIN Posts ON Topics.Page_id = Posts.Page_id 
where Topics.topic_creator = 'AAAA' OR Posts.Post_creator = 'AAAA'

您的问题基本上不是php问题,而是sql问题。您的SQL连接应该如下所示

SELECT * 
FROM Topics 
LEFT JOIN Posts ON Topics.id = Posts.Topic_id 
WHERE Topics.Topic_creator = 'AAA'

最好的方法是使用
联合体
。一个查询返回用户创建的所有主题,另一个查询返回用户发布的所有主题

SELECT *
FROM Topics
WHERE Creator = 'AAA'
UNION
SELECT DISTINCT t.*
FROM Topics AS t
JOIN Posts AS p ON p.Topic_id = t.id
WHERE t.Creator != 'AAA'
AND p.Post_creator = 'AAA'

另外,请注意,第二个查询只选择
t.*
,因为您只需要主题信息,而不是关于他所有文章的信息。并且,
DISTINCT
阻止它为主题中的每个帖子返回一行。

这将满足您的要求:

select * from Topics t
join Posts p
on t.id = p.Topic_id
where t.Topic_creator = 'AAA'
or p.Post_creator = 'AAA'

确保在t.id、p.Topic\u id、t.Topic\u creator和p.Post\u creator上有索引

请将这些图像作为问题中的文本发布。图像往往会在问题不存在的地方消失。这使得这个问题对其他类似问题的人来说毫无用处,这也是这个问题的基本前提,所以它只会返回用户创建的主题,而不是他们发布的主题。这是完全错误的。它不会返回任何与用户正在寻找的
AAA
相关的内容。这将返回所有主题的一行(因为它是
左加入
),以及主题创建者编写的所有帖子。您应该接受对您最有帮助的答案。单击答案旁边的复选标记。