首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mySQL UNION故障

mySQL UNION故障
EN

Stack Overflow用户
提问于 2012-01-05 08:10:53
回答 1查看 92关注 0票数 0

我在使用涉及联合的sql连接时遇到了问题。我试图从两个表中拉出一个计数和一个字段,但是得到了一个错误。

查询:

代码语言:javascript
复制
$sql_result7 = mysql_query("(SELECT COUNT (*) as alertcount, date as alertdate FROM alerts WHERE to_id='$id' AND date > '$lastcheck') UNION (SELECT COUNT (*) as mailcount, date maildate FROM mobmail WHERE to_id='$id' AND to_del=0 AND seen = '0')", $db); 

$rs7 = mysql_fetch_array($sql_result7);
$alerts = $rs7[alertcount]; 
$mails = $rs7[mailcount]; 
$last_alert = $rs7[alertdate]; 
$last_mail = $rs7[maildate];

是不是和date as alertdate部件有关?

我得到的错误是:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-01-05 08:51:09

除了COUNT(*)之间的空间之外,还有另一个问题。您不能在PHP代码中使用$rs7[mailcount]$rs7[maildate],因为您的查询等同于:

代码语言:javascript
复制
SELECT 
      COUNT(*) as alertcount
    , date as alertdate 
FROM alerts 
WHERE to_id = '$id' 
  AND date > '$lastcheck' 
UNION 
SELECT 
      COUNT(*)                      --- No "as mailcount" here
    , date                          --- No "as maildate" either 
FROM mobmail 
WHERE to_id = '$id' 
  AND to_del = 0 
  AND seen = '0'

并将返回两行且仅返回两列:

代码语言:javascript
复制
alertcount | alertdate
-----------|------------
 24        | 2012-01-04
 73        | 2011-11-11

有两种方法可以解决这个问题:

要么保留查询(将UNION更改为UNION ALL,以确保始终获得2行),然后更改PHP以使用这2行。

或将查询更改为:

代码语言:javascript
复制
SELECT alertcount, alertdate, mailcount, maildate 
FROM
      ( SELECT 
              COUNT(*) AS alertcount
            , date     AS alertdate 
        FROM alerts 
        WHERE to_id = '$id' 
          AND date > '$lastcheck' 
      ) AS a 
  CROSS JOIN
      ( SELECT 
              COUNT(*) AS mailcount
            , date     AS maildate 
        FROM mobmail 
        WHERE to_id = '$id' 
          AND to_del = 0 
          AND seen = '0'
      ) AS b
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8735942

复制
相关文章

相似问题

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