繁体   English   中英

联接表-MySQL和PHP

[英]Join tables - MySQL & PHP

我正在尝试加入两个表。 第一个表包含11个项目的列表,这些项目是带有自动id字段“ id”的“ site_names”。 我要连接的第二个表的自动ID字段为“ desc_id”,另一个字段为“ descriptions”。 第二个表当前有3行数据,我只想为表1中的ID 1显示。

因此,我要完成的工作是将表ID为'1'的第一个站点连接到整个第二个表。

我似乎无法弄清楚如何仅将表1中的第一个条目(id = 1)连接到表2中的所有行(tb.1-> id-> 1到tbl.2-> desc_id-> 1, 2,3)。

我希望这是有道理的。 任何帮助都会很棒。 谢谢

尝试:

select site_name, descriptions
from table_1
inner join table_2
  on 1 = 1
where table_1.site_id = 1

这应该给你想要的东西。

好的-根据评论,我猜您想要的是:

site1 | desc1 | desc2 | desc3

全部在一排。 这有点棘手-特别是如果您希望它对任意数量的描述保持开放。 仅需要3个(或者实际上是任何有限的子集,但是随着数量的增加,它会变得难看),您可以执行以下操作:

select site_name, t2.desc, t3.desc, t4.desc
from table_1 
inner join table_2 t2
  on t2.desc_id = 1
inner join table_2 t3
  on t3.desc_id = 2
inner join table_2 t4
  on t4.desc_id = 3
where site_id = 1

这种东西是非常不规则的。 在我看来,关于您的架构的某些信息可能不太适合生成此类要求。

这是查询:

<?php

        $mysql = new mysqli('localhost', 'root', 'root') or die('counld not connect');
        $result = $mysql->query("SELECT ajax_demo.explore.site_name, anthony1.property.descriptions FROM ajax_demo.explore INNER JOIN anthony1.property ON ajax_demo.explore.id = anthony1.property.desc_id") or die($mysql->error);

        if($result) 
        {
                                        while($row = $result->fetch_object()) 
                                        {
                                                $id = $row->id;
                                                $siteName = $row->site_name;
                                                $siteDescription = $row->site_description;


                                                echo "$siteName";
                                                echo "$siteDescription";
                                        }
        }

    ?>

我在这里可能会丢失一些东西,但是听起来像是您需要在Site表中添加外键。 如果我正确理解了您的问题,则您的表应如下所示:

Site
- SiteID
- DescriptionID
- SiteName

Description
- DescriptionID
- Description

然后,用于获取站点及其相关描述的查询将如下所示:

SELECT
  s.SiteName,
  d.Description
FROM
  Site s INNER JOIN Description d
    ON s.DescriptionID = d.DescriptionID

该表结构假定多个站点共享单个描述(根据您发布的问题)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM