Php 无法在mysql中联接3个表以链接用户ID
我想这可能是不可能的,但是我想在ID users列中连接3个表,这3个表都有。我已经做了好几天了。对于任何愿意帮助的人来说,这可能有点困惑 表格结构和表格说明如下: wp_users ID,display_name这是用户表 故事ID,SID此表存储故事名称以及故事的发起人 写入ID、SID、WID、text此表存储不同作者添加到SID的所有写入内容,因此此处可以有多行SID,每行具有不同的用户ID。ID是用户,与其他表中的ID值匹配。WID是每个SID的书写片段 每个故事ID SID在写入表中都有多条记录,每条记录都有不同的写入ID。故事表只有一个SID和一个ID—故事的开始者。我的代码仅基于此故事表中的ID(故事的开始者)提供display_名称。我需要它显示由其他人为该SID添加的每段写入的显示名称,这些名称存储在写入表中 该代码目前可以正常工作,只是它为存储在writing表中的所有书写段提供了相同的author display_名称,即使每个书写段有不同的作者 问题是,只要我尝试添加另一个连接,比如join wp_users on write.ID=wp_users.ID,我就不会得到任何变量的结果。如果我不尝试在ID处加入第三个表,代码可以工作,但只会显示Php 无法在mysql中联接3个表以链接用户ID,php,mysql,Php,Mysql,我想这可能是不可能的,但是我想在ID users列中连接3个表,这3个表都有。我已经做了好几天了。对于任何愿意帮助的人来说,这可能有点困惑 表格结构和表格说明如下: wp_users ID,display_name这是用户表 故事ID,SID此表存储故事名称以及故事的发起人 写入ID、SID、WID、text此表存储不同作者添加到SID的所有写入内容,因此此处可以有多行SID,每行具有不同的用户ID。ID是用户,与其他表中的ID值匹配。WID是每个SID的书写片段 每个故事ID SID在写入表中
SELECT wp_users.ID, wp_users.display_name,
stories.ID, stories.SID, stories.story_name, stories.category,
writing.ID, writing.text, writing.approved
FROM stories
JOIN wp_users ON stories.ID = wp_users.ID
JOIN writing ON stories.SID = writing.SID
WHERE (stories.SID = $the_SID) AND (writing.approved = 'Y')
");
<?php
foreach ($results as $result) {
echo "<br>" . "Author: " . $result->display_name . "<br>" . $result->text . "<br>";
部分问题可能是所有3个表的名称ID不能相同吗?甚至可以在ID上连接3个表吗?非常感谢您的帮助…请确保您可以加入任意多个表。这取决于你想要什么结果。另外,我认为您正在寻找这些查询的左JOIN
如果您的主要选择是写入表,请尝试以下操作:
SELECT
wp_users.ID,
wp_users.display_name,
stories.ID,
stories.SID,
stories.story_name,
stories.category,
writing.ID,
writing.text,
writing.approved
FROM writing
LEFT JOIN stories on writing.SID = stories.SID
LEFT JOIN wp_users ON writing.ID = wp_users.ID
WHERE (stories.SID = $the_SID) AND (writing.approved = 'Y')
有趣的但同样的结果。通过对$results执行var_转储,我看到了相同的情况……它确实返回了每段写入的所有记录,甚至还返回了每段写入的正确用户ID,但它仍然不会在echo中显示正确的作者名display_name。它会为所有记录显示相同的作者姓名,这是故事开始者的用户名。也就是说,它似乎仍然返回stories.ID传递的ID的显示名,而不是write.ID传递的用户名。我想您刚刚回答了自己的问题。尝试将stories.ID=wp_user.ID上的LEFT JOIN wp_users行更改为write.ID=wp_user.ID上的LEFT JOIN wp_users。我已经编辑了我的答案,你太棒了!!!!!非常感谢!就这样!我有一些人知道这些东西,但却不明白这一点。非常感谢!!!别担心。查看一些好的资源,了解联接及其工作原理、不同之处以及何时使用每种类型。这是一个很好的视觉指南: