我想用
og
语言检索带有sql
的php
标签,但我只能看到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()
循环中。
使用 union 时,列的数量必须相同,因为它将合并两个查询的结果。在您的情况下,您要求的特定内容结果存储在多个表中,因此您可以进行联接。