繁体   English   中英

如何在一个查询中解决两个 select 语句的问题

[英]How can I solve an problem with two select statements in one query

我想用php语言用sql检索og标签,但我只能看到 1 个结果,这是他阅读的第一个结果,另一个我在页面源代码中看不到。

这是php代码

$query = "SELECT metatitle FROM isacontent_content WHERE contentid = 12245
          UNION ALL 
          SELECT name FROM isacontent_module_anchorimage WHERE contentid = 12245";

$resimage = $conn->query($query);

if(is_array($resimage)){

    foreach ($resimage as $resItem){

        $metaData[] = $resItem->fetch_assoc();

    }

}else{

    $metaData[] = $resimage->fetch_assoc();

}
$title = $metaData[0]["metatitle"];   
$image = $metaData[0]["name"];

我希望这两个 select 语句都可以工作,我可以在元标记中看到这两个内容

对于UNION ALL ,您的列名必须相同,或者您可以为此使用ALIAS

但是,在您的示例中,您可以简单地使用INNER JOIN通过使用 1 个单个查询从 2 个表中获取这两个值。

例子:

SELECT ic.metatitle, im.name FROM isacontent_content ic
INNER JOIN isacontent_module_anchorimage im ON im.contentid = ic.contentid
WHERE ic.contentid = 12245

使用INNER JOIN因为你的两个表都有关系,所以你可以简单地使用INNER JOIN

边注:

如果您知道,您的查询将返回 1 行,那么为什么要在此处将数据存储到数组中$metaData[] 您可以简单地将$title$image存储在foreach()循环中。

当您使用联合时,您的列数必须相同,因为它将结合两个查询的结果。 在您的情况下,您要求存储在多个表中的特定内容结果,因此您可以 go 进行连接。

暂无
暂无

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

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