首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >需要合并2个表

需要合并2个表
EN

Stack Overflow用户
提问于 2014-03-28 01:05:54
回答 3查看 76关注 0票数 0

深吸一口气,我真的不知道如何从我的MySQL中组合两个表,我会向你展示我已经组合的表和需要组合的行。

名为post的表:

正如你所看到的,cat意味着类别,它是哪个类别(参见下面的类别表nameIDcat相同)例如我的页面www.site.com/ Category y.php?NAMEID=NAMEID(表类别)&id=ID(表post)需要组合,所以如果我转到?nameid=1&id8,页面应该是空白的,或者给出一个错误,因为id=8是类别2而不是1。

代码语言:javascript
运行
复制
    // BEGIN OF SHOWING CONTENT PAGE
    if (isset($_GET['id'])){
        $naamID = mysql_real_escape_string($_GET['nameID']);
        $id     = mysql_real_escape_string($_GET['id']);
        $idnext = $id + 1;
        $gn     = (" SELECT * FROM category WHERE nameID='".$naamID."'") or die(mysql_error());
        $go     = (" SELECT * FROM post WHERE id='".$id."'") or die(mysql_error());
        $gnn    = mysql_query($gn) or die(mysql_error());
        $goo    = mysql_query($go) or die(mysql_error());
        $gnnn   = mysql_fetch_array($gnn);
        $gooo   = mysql_fetch_array($goo);


        if(empty($gooo['youtube'])){
        } else {
?>      <h2> <?php echo htmlspecialchars($gooo["title"]); ?> </h2><br />
<?php
        echo '<iframe width="560" height="315" src="//www.youtube.com/embed/'.$gooo["youtube"].'" frameborder="0" allowfullscreen></iframe><br />';

        }

            if(empty($gooo['pic'])){
            } else {
            ?> <h2> <?php echo htmlspecialchars($gooo["title"]); ?> </h2><br /> 
            <?php
            echo '<img src="'.$gooo["pic"].'"/>';
            }
            }
            ?>
EN

回答 3

Stack Overflow用户

发布于 2014-03-28 01:12:24

代码语言:javascript
运行
复制
SELECT table1.keyid FROM table1
UNION
SELECT table2.keyid FROM table2

我希望这个例子能帮助你,试着理解如何组合两个表

票数 0
EN

Stack Overflow用户

发布于 2014-03-28 01:15:41

更新:

根据我的理解,下面的代码片段可能会解决你的问题

代码语言:javascript
运行
复制
$row = mysql_query("SELECT p.cat, c.nameID FROM post p INNER JOIN category c ON p.cat = c.nameID WHERE p.cat = '".$id."' AND c.nameID = '".$naamID."' LIMIT 1");
 if(mysql_num_rows($row)==0)
 {
     echo("This post doesn't exist on this category")
 }

更新2:

代码语言:javascript
运行
复制
<?if (isset($_GET['id']))
{
      $naamID = mysql_real_escape_string($_GET['nameID']);
      $id     = mysql_real_escape_string($_GET['id']);
      $row1 = mysql_query("SELECT p.cat, c.nameID FROM post p INNER JOIN category c ON p.cat = c.nameID WHERE p.cat = '".$id."' AND c.nameID = '".$naamID."' LIMIT 1");
     if(mysql_num_rows($row1)==0)
     {
     echo("This post doesn't exist on this category");
     }
     else
     {          
       $idnext = $id + 1;
       $gn     = (" SELECT * FROM category WHERE nameID='".$naamID."'") or die(mysql_error());
       $go     = (" SELECT * FROM post WHERE id='".$id."'") or die(mysql_error());
       $gnn    = mysql_query($gn) or die(mysql_error());
       $goo    = mysql_query($go) or die(mysql_error());
       $gnnn   = mysql_fetch_array($gnn);
       $gooo   = mysql_fetch_array($goo);

       /*--------------your other display code when data is available-------------*/
      }
}     
?>
票数 0
EN

Stack Overflow用户

发布于 2014-03-28 01:40:23

我想我不理解传递categid的必要性,因为post id本身看起来像主键,所以你必须能够获取特定的post记录,并且可以使用类似(你只需要在参数中传递post id )来检索与请求的post链接的类别的名称。

代码语言:javascript
运行
复制
SELECT youtube,title,c.name,pic  FROM post p 
INNER JOIN categories c
ON c.nameid=p.cat
WHERE p.id=2

如果你正在尝试获取请求的帖子记录以及所有来自请求类别的帖子,那么你可以写下这样的查询

代码语言:javascript
运行
复制
  SELECT youtube,title,c.name,pic 
  FROM post 
  INNER JOIN categories c
  ON c.nameid=p.cat
  WHERE (p.id=8 or cat=2)

希望这能有所帮助!

谢谢Suresh

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22694449

复制
相关文章

相似问题

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