php - 与 PHP 和 MySQL 连接仅返回指定值?

标签 php mysql database join

我似乎无法理解 JOINS概念听起来很美。目前,我不确定以下哪一个是我的问题,但我真的很希望得到一些帮助来解决这个问题。我已经阅读了这里的几篇文章,甚至在阅读 Material 的同时还进行了 W3Schools 测试,但我无法找到解决方案。通过一本书?当然,哪一个?我不是反对学习,只是不知道从哪里开始。

问题是我有三个表,其中包含我需要的所有信息,但我只能匹配一行(即,如果 profile.person = user.id)。这使我的能力恢复到 LEFT JOIN profile.person 数字值匹配的人员姓名,以便在显示表格时不显示数字。有道理,但当我更进一步时,我感觉就像爱丽丝梦游仙境一样,很困惑。

我想做的是获取故事,提取该故事的帖子,确定该故事所属的系列,然后确定发布该故事的用户。

我的表格如下所示:

Series Table
PID INT, name VARCHAR, episodes INT
(episodes = # of stories in series)

Stories Table
PID INT, name VARCHAR, series INT, posts INT
(both series and posts = # items under them)

Storyparts Table
PID INT, story INT, position INT, port INT, content MEDIUMTEXT
(story is the ID of the story it belongs too, position is the order it should be
 displayed in, port is the ID of the character who is telling the story,
 content is the post itself (text))

Characters Table
PID INT, name VARCHAR, faction INT, imgport VARCHAR, imgmain VARCHAR, age INT,
hometown VARCHAR, bio MEDIUMTEXT
(both imgport and imgmain store the file names of their images "Portrait and Main")

我正在尝试加载一个故事并显示其 namename它来自的系列并显示 imgport后跟 name 的字符角色,最后是 content 。一旦将它们存储到变量中,我就可以显示它们,我的问题是我到底该怎么做?是我的 table 有问题吗?我是否没有收集足够的信息来使其工作,或者是否有一种方法可以根据存储在另一个表中的单个值从一个表中提取所有信息?

我到目前为止的代码:(我在这之后有 while 循环和 if 语句来过滤掉不需要的帖子,但我确信这远远超出了良好的做法。)

if ($getStories = $db->query("SELECT stories.*,
              series.name as series
              FROM stories
              LEFT JOIN series ON stories.series = series.pid")
                              or die($db->error)) { }

最佳答案

$db->query("
   select st.name as story_name, se.name as series_name, 
   c.imgport, c.name, sp.content from series as se 
   left join stories as st on se.pid = st.pid
   left join character as c on se.pid = c.pid
   left join storyparts as sp on se.pid = sp.pid");

我相信这会达到你想要的效果。如果您需要连接多个表...那么添加更多连接:)

关于php - 与 PHP 和 MySQL 连接仅返回指定值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23003306/

相关文章:

MySQL子串count(1)错误

database - 多次加入日期维度? - Kimball 关于数据仓库和维度建模的书

mysql - 我应该在客户端代码中存储什么作为索引?

php - 二进制 in_array 搜索

php - 这在 HTML 和 PHP 中是否可能或有效?

php - 缩小PHP有什么意义吗?

database - 访问数据库的成本是多少?我们多久访问一次它?

php - Facebook 图形 API : rendering posts like Facebook

PHP mysql 将关联数组从 "dynamic"形式插入数据库

mysql - DB where 在两个日期列之间