首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >简单的SQL语句--我应该在这里加入3个表还是加入2个表?

问简单的SQL语句--我应该在这里加入3个表还是加入2个表?
EN

Stack Overflow用户
提问于 2011-12-14 03:21:30
回答 3查看 98关注 0票数 1

我是MySQL和php的新手,而且我在这个问题上被包围了。我已经做了好几个小时了,但没有达到预期的结果。请帮帮忙?我首先要说的是:

代码语言:javascript
复制
$query = sprintf('select image_id, filename from images');
$result = mysql_query($query);
$images = array();
    while ($row = mysql_fetch_array($result)) {
    $id = $row['image_id'];
    $images[$id] = $row['filename'];
    echo $images[$id];
}

我有三张桌子:

description

  • images - image_id,文件名,size

  • Imagsub-image_id,submission_id

上面的脚本正在提取数据库中的所有文件名和image_id。我需要将结果限制为与referencing表中的submission_id匹配的图像行。我在sprintf函数中尝试了各种连接,但都没有效果,现在我甚至无法通过一个简单的mysql_query获得我想要的结果。在我把头发拔出来之前,有人能让我走上正确的道路吗?我是否需要在这里连接所有三个表,还是只需加入图像和图像子表?我需要的submission_id在一个名为$item的变量中,该变量是从上一页中提取的,所以我可能根本不需要提交表,只需要来自imagsub的外键?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-12-14 03:30:13

你试过吗

代码语言:javascript
复制
select image_id, filename from images
  join imagsub on images.image_id = imagsub.image_id
  where imagesub.submission_id = YourID
票数 0
EN

Stack Overflow用户

发布于 2011-12-14 03:28:30

尝试:

代码语言:javascript
复制
select image_id, filename from images i
  join imagesub s on s.image_id = i.image_id
  where s.subbmision_id = $1;

您需要将$1参数设置为在请求中收到的"$item“值。

票数 0
EN

Stack Overflow用户

发布于 2011-12-14 03:28:37

尝试将此作为查询来获取所有这些

代码语言:javascript
复制
select s.submission_id, b.image_id, i.filename
from submissions s 
inner join imagsub b on b.submission_id = s.submission_id
inner join images i on i.image_id = b.image_id  
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8499141

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档