[英]Subquery (COUNT) Doesn't Work
我正在使用PHP和MySQL。 此查詢有效,其中我的頁面URL為MySite / Carl_Sagan(Carl_Sagan = $ MyURL),而Carl_Sagan也是數據庫表中名為people的值,字段URL:
$sql= "SELECT COUNT(URL) AS num FROM people WHERE URL = :MyURL";
$stmt = $pdo->prepare($sql);
$stmt->bindParam(':MyURL',$MyURL,PDO::PARAM_STR);
$stmt->execute();
$Total = $stmt->fetch();
switch($Total['num'])
{
case 1:
echo "\n";
require($BaseINC."/$MyPHP/inc/C/2_Child.php");
break;
case 0:
break;
default:
break;
}
但是,當我通過UNION ALL將多個表鏈接在一起,將其轉換為子查詢時,它將不起作用。 我沒有收到任何錯誤消息,但是$ Total ['num']的值為0,應為1。
誰能看到下面發布的我的子查詢的問題?
$sql = "SELECT SUM(num) FROM (
SELECT COUNT(URL) AS num FROM pox_topics WHERE URL = :MyURL
UNION ALL
SELECT COUNT(URL) AS num FROM people WHERE URL = :MyURL
UNION ALL
SELECT COUNT(Taxon) AS num FROM gz_life WHERE Taxon = :MyURL
) AS X";
$stmt = $pdo->prepare($sql);
$stmt->bindParam(':MyURL',$MyURL,PDO::PARAM_STR);
$stmt->execute();
$Total = $stmt->fetch();
我應該注意,即使我將子查詢剝離到原始表中,子查詢也不起作用,如下所示:
$sql = "SELECT SUM(num) FROM (
SELECT COUNT(URL) AS num FROM people WHERE URL = :MyURL
) AS X";
$stmt = $pdo->prepare($sql);
$stmt->bindParam(':MyURL',$MyURL,PDO::PARAM_STR);
$stmt->execute();
$Total = $stmt->fetch();
沒有$Total['num']
了。 嘗試SELECT SUM(num) AS num
...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.