【发布时间】:2014-08-03 00:39:45
【问题描述】:
我在想这可能是不可能的,但我想在 ID(用户)列中加入 3 个表,所有 3 个表都有。已经做了好几天了。对于愿意提供帮助的人来说,这可能有点令人困惑......
表架构和表解释为:
wp_users (ID, display_name) 这是用户表
stories (ID, SID) 此表存储故事名称和发起人
writing (ID, SID, WID, text) 该表存储了不同作者添加到 SID 的所有文字,因此这里可以有多行 SID,每行具有不同的用户 ID。 ID 是用户并且与其他表中的 ID 值匹配。 WID 是每个 SID 的写作片段。
每个故事 ID (SID) 在写作表中都有多条记录,每条记录都有不同的写作 ID。 stories 表只有一个 SID 和一个 ID——故事的开始人。我的代码仅根据此故事表中的 ID(开始故事的人)给出 display_name。我需要它来显示其他人为该 SID 添加的每篇文字的显示名称,这些文字存储在书写表中。
该代码目前可以工作,只是它为存储在写作表中的所有作品提供相同的作者 (display_name),即使每个写作作品 (WID) 有不同的作者。
问题是,一旦我尝试添加另一个连接,例如 join wp_users on writing.ID = wp_users.ID 我没有得到任何变量的结果。如果我不尝试在 ID 处加入这第三张表,则代码有效,但只会显示
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 个表吗?非常感谢任何帮助...
【问题讨论】: